字符串值的单元测试

时间:2013-03-28 20:00:56

标签: java unit-testing

此测试失败:

String validString = new String("12345.78");  
myClass.setStringValue(validString);  
assertEquals( "testSetStringValue: " + validString, validString, myclass.getStringValue() ); 

因为,我认为,即使validStringmyclass.getStringValue()的返回值包含相同的内容12345.78,它们也是不同的对象。

如何测试包含相同内容的它们?

2 个答案:

答案 0 :(得分:4)

assertEquals()将使用equals()进行比较,因此您的测试就可以了。如果要测试某个对象实例与其他对象实例相同,可以使用assertSame()

有关更多信息,请参阅JUnit doc

答案 1 :(得分:1)

只需使用assertSame即可。但我认为这没有道理,因为它不同意String合约。您的任何代码都不应该假设字符串为==,它必须依赖于equal