我读过如果假设失败,assume
将不会运行测试,
但我不确定何时放置 assert
与 assume
的逻辑。
例如:任何资源加载检查都应该用assume
来完成吗?
什么时候应该使用 assume
而不是 assert
?
(注意:我正在寻找何时使用一个而不是另一个的正确设计)
最佳答案
如果您遇到某些测试根本不应运行的情况,您可以使用assume
。 “未运行”意味着它不会失败,因为它没有运行。
如果出现问题,您可以使用 assert
使测试失败。
因此,在一个假设的场景中:
- 您为不同的客户提供不同的构建,并且
- 您拥有一些仅适用于特定客户的资源,并且
- 该资源有一些可测试的东西,然后
你会写一个测试:
- 假设资源存在,(因此测试不会在没有该资源的客户上运行,)然后
- 断言有关资源的一切都没有问题(因此对于实际拥有该资源的客户,测试可确保该资源处于应有的状态。)
关于java - JUnit 测试中的假设与断言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44628483/