【发布时间】:2011-12-01 05:52:02
【问题描述】:
我遇到过很多关于在单元测试期间使用/不使用多个断言的资源。但是在编写 UI 级别的自动化集成测试时,我最终在一个测试中做了很多断言,这对我来说似乎不是一个坏主意,尤其是当我使用软断言时,这些断言仅在拆除过程中失败并在测试方法中报告所有断言失败,而不是将其限制为每次测试一份报告。
这样的场景之一是填写具有 10 个字段(文本框、下拉列表等)的表单。返回表单并验证所有输入的值是否可用。我不喜欢我的测试是,它充满了许多断言。我想断言所有这些值,但又希望我的测试看起来干净而不像 -
public void testMethod() {
// Some operation here
softAssert("verification failed for field 1, expected value:" +value, isValuePresent(value));
softAssert("verification failed for field 2, expected value:" +value, isValuePresent(value));
softAssert("verification failed for field 3, expected value:" +value, isValuePresent(value));
// Some more assertions here
}
我可以将这些断言提取到不同的方法中,但我觉得断言应该保留在测试方法中。以明确测试方法中正在测试的内容。
我只是有一种微不足道的虚无缥缈的感觉,这样的测试设计是合理的吗?或者 我可以在我的测试方法中进行设计改进。
【问题讨论】:
标签: java unit-testing integration-testing