Rac*_*hel 2 java unit-testing equals
我创建了一个值对象MarketVO,该值对象的两个实例具有相同的元素,每个元素的值相同.
我的值对象类是:
public class MarketVO {
private double floatAmt;
private Date marketDate;
private long marketCap;
}
Run Code Online (Sandbox Code Playgroud)
以下是值:
returnedData:
FloatAmt: 247657.5418618201, MarketCap: 5249164,
MarketDate: 2011-07-29 00:00:00.0
Run Code Online (Sandbox Code Playgroud)
expectedData:
FloatAmt: 247657.5418618201, MarketCap: 5249164,
MarketDate: 2011-07-29 00:00:00.0
Run Code Online (Sandbox Code Playgroud)
现在在我的单元测试类中,我想断言我的返回和预期类型是相同的,包含相同顺序的相同值,所以我正在做类似的事情
assertTrue(returnedData.equals(expectedData)),现在这是回归false价值,但如果我这样做
assertEquals(testObject.getfloatAmt(), testObject2.getfloatAmt());
assertEquals(testObject.getmarketCap(), testObject2.getmarketCap());
assertEquals(testObject.getmarketDate(), testObject2.getmarketDate());
Run Code Online (Sandbox Code Playgroud)
这个测试通过,所以我不确定为什么.equals方法不在这里工作?有什么建议?
更新:我想在此强调我们正在使用它进行单元测试.
aio*_*obe 11
.equals比较对象引用的默认实现,而不是对象内容.
您可能希望覆盖equals(和hashCode)方法.像这样的东西:
public class MarketVO {
private double floatAmt;
private Date marketDate;
private long marketCap;
@Override
public boolean equals(Object o) {
if (!(o instanceof MarketVO))
return false;
MarketVO other = (MarketVO) o;
return other.floatAmt == floatAmt &&
other.marketDate.equals(marketDate) &&
other.marketCap == marketCap;
}
@Override
public int hashCode() {
...
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6083 次 |
| 最近记录: |