Mik*_*ike 14 java junit unit-testing
assume如果假设失败,我已经读过不会运行测试,但我不确定何时放置assertvs 的逻辑assume.
例如:任何资源加载检查应该用assume?
我什么时候应该assume用完assert?
(注意:我正在寻找何时使用其中一个的正确设计)
Mik*_*kis 18
assume如果您遇到某些测试根本不应运行的情况,您可以使用."不运行"意味着它不会失败,因为它没有运行.
assert如果出现问题,您将使用测试失败.
因此,在假设情景中:
你会写一个测试:
Assert类是JUnit的主力,是JUnit测试人员最熟悉的类.大多数JUnit断言签名本质上是相似的.它们由可选消息,预期实例或变量以及要比较的实际实例或变量组成.或者,在布尔测试(如True,False或Null)的情况下,只需要测试的实际实例.
带有消息的签名只有一个带有消息字符串的初始参数,该消息字符串将在断言失败时显示:
assert<something>(“Failure Message String”, <condition to be tested>);
Run Code Online (Sandbox Code Playgroud)
假设:您可能听说过最好不要处理假设,所以这里有一个测试工具JUnit可以确保您的测试不会.
当测试失败时,Asserts和Assumes都会停止,然后继续进行下一个测试.不同之处在于失败的Assert将失败注册为失败的测试,而Assume只是移动到下一个测试.这允许测试者确保在测试运行之前根据需要存在条件,其中一些可能是外部的并且不受测试者的控制.
Assumes有四种:一种用于检查布尔条件,一种用于检查未发生异常,一种用于检查空对象,另一种用于检查Hamcrest匹配器.如上面的Assert部分所示,使用Hamcrest匹配器的能力是测试灵活性的门户.
你可以在这里阅读更多内容 https://objectcomputing.com/resources/publications/sett/march-2014-junit-not-just-another-pretty-assert/
简而言之,假设用于禁用测试,例如以下禁用Linux上的测试:Assume.assumeFalse(System.getProperty("os.name").contains("Linux"));
Assert用于测试功能.
小智 5
断言和假设之间最简单的区别是:
假设仅当假设为真时才会运行。如果为 false 将被跳过。
assumeTrue(boolean assumption, String message)
Run Code Online (Sandbox Code Playgroud)
如果为真,断言将正常运行。如果出现错误断言,它会给出预定义的错误消息。
assertTrue(boolean condition, String message)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5861 次 |
| 最近记录: |