此测试失败:
String validString = new String("12345.78");
myClass.setStringValue(validString);
assertEquals( "testSetStringValue: " + validString, validString, myclass.getStringValue() );
因为,我认为,即使validString
和myclass.getStringValue()
的返回值包含相同的内容12345.78
,它们也是不同的对象。
如何测试包含相同内容的它们?
答案 0 :(得分:4)
assertEquals()
将使用equals()
进行比较,因此您的测试就可以了。如果要测试某个对象实例与其他对象实例相同,可以使用assertSame()
有关更多信息,请参阅JUnit doc。
答案 1 :(得分:1)
只需使用assertSame
即可。但我认为这没有道理,因为它不同意String合约。您的任何代码都不应该假设字符串为==
,它必须依赖于equal
。