Vin*_*ati 1 java junit unit-testing
我有一个测试用例如下:
@Test
public void GIVEN_correct_tradingStatusId_parameter_WHEN_invoked_getTradingStatusByName_THEN_correct_TradingStatus_is_returned() {
String tradingStatus = lookupDto.getTradingStatusByName("2013");
assertNotNull(tradingStatus);
assertEquals("Dissolved", tradingStatus);
}
Run Code Online (Sandbox Code Playgroud)
在这里,我测试tradingStatus不是为null然后检查它等于Dissolved.我关心的是我是否真的需要测试assertNotNull我是否正在测试使用assertEquals.
我在源代码中查看了assertEquals的方法定义.如下: -
static public void assertEquals(String message, Object expected,
Object actual) {
if (equalsRegardingNull(expected, actual)) {
return;
} else if (expected instanceof String && actual instanceof String) {
String cleanMessage = message == null ? "" : message;
throw new ComparisonFailure(cleanMessage, (String) expected,
(String) actual);
} else {
failNotEquals(message, expected, actual);
}
}
Run Code Online (Sandbox Code Playgroud)
在这个equalsRegardingNull就像:
private static boolean equalsRegardingNull(Object expected, Object actual) {
if (expected == null) {
return actual == null;
}
return isEquals(expected, actual);
}
Run Code Online (Sandbox Code Playgroud)
我甚至无法理解assertNotNull在打电话之前是否值得使用assertEquals.请帮忙.
最简洁的答案是不.
没有就没有必要使用assertNotNull前assertEquals.如果你tradingStatus是null比较无论如何都将失败,并会告诉你,你是对的比较null.其他所有因素都会使您的测试代码变得更加复杂,但却无法带来额外的好处.
| 归档时间: |
|
| 查看次数: |
225 次 |
| 最近记录: |