简体   繁体   English

当输出相同时,为什么我对Object的assertEquals()的测试失败?

[英]Why my test to assertEquals() for Object fails when output is same?

My method is a part of RESTful service but I think it doesn't matter in this case. 我的方法是RESTful服务的一部分,但在这种情况下,我认为这并不重要。

I have a test to check if method which parse XML to Object working correctly: 我有一个测试来检查将XML解析为Object的方法是否正常工作:

public void test() {
    MemberEurope testMemberObject = new MemberEurope();
    testMemberObject.setFirstName("Marcin");    
    testMemberObject.setLastName("Kruglik");
    testMemberObject.setStreet("256 Clarendon Street");
    testMemberObject.setCity("Boston");
    testMemberObject.setCounty("MA");
    testMemberObject.setPostcode("02115");
    testMemberObject.setCountry("USA");
    testMemberObject.setId(1);
    String testMember = "<member>"
            + "<first-name>Marcin</first-name>"
            + "<last-name>Burke</last-name>"
            + "<street>256 Clarendon Street</street>"
            + "<city>Boston</city>"
            + "<county>MA</county>"
            + "<postcode>02115</postcode>"
            + "<country>USA</country>"
            + "</member>";
    MemberResourceServiceEU testCase = new MemberResourceServiceEU();
    byte[] data = testMember.getBytes();
    InputStream is = new ByteArrayInputStream(data); 
    testCase.createMember(is);
    assertEquals(testMemberObject, testCase.memberNamesDB.get("Bill Burke"));

Why my jUnit test fail, when actual output displayed in Failure Trace window is same? 当“失败跟踪”窗口中显示的实际输出相同时,为什么我的jUnit测试失败?

java.lang.AssertionError: expected:  com.restfully.member.domain.MemberEurope<Member
First Name: Marcin
Last Name: Kruglik
Address
Street:256 Clarendon Street
City:Boston
County: MA
Postcode: 02115
Country: USA
Id:1> but was: com.restfully.member.domain.MemberEurope<Member
First Name: Marcin
Last Name: Kruglik
Address
Street:256 Clarendon Street
City:Boston
County: MA
Postcode: 02115
Country: USA
Id:1>

Test calls to overridden by me toString() method of Member . 测试对我重写的Member toString()方法的调用。 Track Failure shows some more trace informations, but I don't think so they are important here, if they are, then I will paste it here as well. 跟踪失败显示了更多的跟踪信息,但是我不认为它们在这里很重要,如果确实如此,那么我也将其粘贴到此处。

Does MemberEurope define its own equals operator? MemberEurope是否定义自己的equals运算符? If not, the default Object.equals just checks if the two objects are the same instance (and not that the contents are equal). 如果不是,则默认的Object.equals仅检查两个对象是否是同一实例(而不是内容是否相等)。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM