Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 这在Junit中起作用,但它应该';有人能告诉我怎么纠正它以及为什么它会起作用吗?_Java_Junit - Fatal编程技术网

Java 这在Junit中起作用,但它应该';有人能告诉我怎么纠正它以及为什么它会起作用吗?

Java 这在Junit中起作用,但它应该';有人能告诉我怎么纠正它以及为什么它会起作用吗?,java,junit,Java,Junit,测试等级: public class TestClass extends TestCase { private static final String TEXT_MESSAGE_VALUE = "<test>Me</test>"; private static final String JMS_MESSAGE_ID = "This is the correlation id."; private Serializable xmlSerializab

测试等级:

public class TestClass extends TestCase
{
    private static final String TEXT_MESSAGE_VALUE = "<test>Me</test>";
    private static final String JMS_MESSAGE_ID = "This is the correlation id.";
    private Serializable xmlSerializable;


    @Test
    public void testCreateMessage() throws Exception
    {
        Session mockSession = createMock(Session.class);
        TextMessage mockTextMessage = createMock(TextMessage.class);
        expect(mockSession.createTextMessage(TEXT_MESSAGE_VALUE)).andReturn(mockTextMessage);
        mockTextMessage.setJMSCorrelationID(JMS_MESSAGE_ID);
        replay(mockSession, mockTextMessage);
        test.createMessage(mockSession);
    }
}
公共类TestClass扩展了TestCase
{
私有静态最终字符串TEXT\u MESSAGE\u VALUE=“Me”;
私有静态最终字符串JMS_MESSAGE_ID=“这是相关ID.”;
私有可序列化xmlSerializable;
@试验
public void testCreateMessage()引发异常
{
会话mockSession=createMock(Session.class);
TextMessage mockTextMessage=createMock(TextMessage.class);
expect(mockSession.createTextMessage(TEXT_MESSAGE_VALUE)).andReturn(mockTextMessage);
mockTextMessage.setJMSCorrelationID(JMS_MESSAGE_ID);
重播(mockSession、mockTextMessage);
test.createMessage(mockSession);
}
}

如果不知道有关类的任何信息,就不可能知道
serializedMsg
为null是否合理。如果类没有作为其构造的一部分对其进行初始化,并且没有运行与该类交互的进程,我希望它保持为null

对我来说,JMS的存在意味着还有其他因素在起作用,但是,在不了解测试运行的上下文的情况下,很难说清楚


不相关,但在我看来,
IllegalArgumentException
在这里没有任何意义,因为它不是针对非法参数抛出的。可能是非法状态异常

使用dom4j,我在过去用这种方式比较两个domeElement >


我认为,如果您正在使用DOM4j,那么它将对您有效,

不清楚您在问什么;对方法参数进行健全性检查是一种不错的做法…@phoenix:根据您的代码,您想通过断言比较两个xml字符串,如果我错了,请纠正我。@phoenix:我添加了一个比较两个DomeElement的解决方案,希望如果您使用Dom4j,它能满足您的需要,请让我知道你是否能满足你的需要。你使用的是Java
assert
关键字,而不是JUnit的断言;您是否在启用断言的情况下运行?@Phoenix IMO仍然没有足够的信息。你是说测试通过了还是没有通过?@Phoenix那么,在测试运行程序、配置等中有一些东西使用该类来接收JMS消息,或者这些行中的一些东西。正如我最初所说,如果没有更多的信息,我们将无法告诉你它为什么会过去。
public static boolean compare(Element element1, Element element2){
        if(element1 == null || element2 == null){
            return false;
        }else{
            NodeComparator nc = new NodeComparator();
            return (nc.compare(element1, element2) == 0);
        }
    }