【发布时间】:2018-04-25 21:48:32
【问题描述】:
从设计的角度来看,我想知道我是否应该测试数据,特别是如果它是一个众所周知的数据(不是非常可配置的) - 这可以适用于流行的文件扩展名、特殊 IP 之类的东西地址等
假设我们有一个紧急电话号码分类器:
public class ContactClassifier {
public final static String EMERGENCY_PHONE_NUMBER = "911";
public boolean isEmergencyNumber(String number) {
return number.equals(EMERGENCY_PHONE_NUMBER);
}
}
我应该这样测试吗(“911”重复):
@Test
public testClassifier() {
assertTrue(contactClassifier.isEmergencyNumber("911"));
assertFalse(contactClassifier.isEmergencyNumber("111-other-222"));
}
或(测试是否正确识别“配置”数字):
@Test
public testClassifier() {
assertTrue(contactClassifier.isEmergencyNumber(ContactClassifier.EMERGENCY_PHONE_NUMBER));
assertFalse(contactClassifier.isEmergencyNumber("111-other-222"));
}
或在构造函数中注入“911”,这对我来说看起来最合理,但即使我这样做 - 如果组件被实例化,我是否应该为“应用程序胶水”编写测试具有适当的价值?如果有人可以在数据(代码)中打错字,那么我看不出有人可以在测试用例中打错字(我敢打赌这样的数据会是复制粘贴)
【问题讨论】:
标签: java unit-testing junit automated-tests