- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这种使用 Assert.assertTrue(true) 的做法是好是坏?和 Assert.fail() 在 JUnit 测试中,为什么?
我知道还有规则 @Test (expected = Exception.class),但是你可以有不止一个异常可以在测试方法上引发,如果你不想为一个测试方法使用无数的测试方法,这个可以选择。
用例是这样的:您测试可以引发零个、一个或多个异常的方法(例如,使其简单化为一个)并且您想要测试调用是否正常的用例,因此不应出现异常提高,如果你进入 catch block ,你将提高 Assert.fail();然后你想要在应该引发异常时测试用例,所以你调用 catch block Assert.assertTrue(true);说“是的,这就是我想要的”。从测试中,您可以在一种测试方法中看到它何时应该失败,以及何时运行测试,如果它真的像您想要的那样运行。
问题是:这是好事还是坏事?为什么?
public void fooMethod(boolean paramenter) {
if(false) {
throw new Exception();
}
}
@Test
public void testFooMethod() {
try {
myTestedClassMock.fooMethod(true); //should not raise exception
} catch(Exception e) {
Assert.fail();
}
try {
myTestedClassMock.fooMethod(false); //should raise exception
} catch (Exception e) {
Assert.assertTrue(true);
}
}
最佳答案
你总是可以省略 Assert.assertTrue(true)
因为 assertTrue
是为不同的目的而设计的。它用于检查涉及多个 boolean 项的一般条件,例如
Assert.assertTrue(t == null ||| minSize < 0 || t.size() > minSize);
断言常量 true
总是成功而不留痕迹,因此您可以从代码中完全删除这一行。通过在必须抛出异常的测试代码行之后立即放置 Assert.fail();
来捕获预期异常未抛出的情况,并显示一条消息没有抛出预期的异常。
if you don't want to have zillion testing methods for one tested method, this could be option.
通常,“不计其数的测试方法”是更好的选择。作为替代方案,您可以在测试中捕获 Exception
或 RuntimeException
,而不是捕获每个单独的异常。这在生产代码中是一种有问题的做法,但在您必须确保不抛出任何异常时,在测试代码中绝对没问题。
但是,Assert.fail();
并不是一种不常见的快捷方式,通常也是可以接受的。添加一条消息来描述失败背后的原因是个好主意,这样维护您的代码的人就不必通读您的测试以了解发生了什么。当您捕获异常时,它的消息是测试失败消息的一个很好的候选者。
关于java - 正在使用 Assert.assertTrue(true);并断言 Assert.fail(); JUnit 测试的良好实践?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36738858/
如何在 View 上显示因 @AssertTrue 而发生的 jsp 验证错误消息注解?它与特定字段无关,但我使用它来验证字段组合。如果我使用 这将显示该表单的所有错误? 最佳答案 根据我的测试,很重
所以我用这些变量创建了一个 Trie 类。 Node rootNode = new Node(); int nodeCount = 1; int wordCount = 0; static Strin
我正在使用 PHPUnit 来测试我的代码但是当我使用 assertTrue 时,phpunit 的行为符合预期。这是 phpunit 的正常行为吗?我收到以下错误。 断言 1 为真失败。 最佳答案
我已经多次查看文档和源代码,但它不起作用。 我正在寻找与 PHPUnit 的“this->assertTrue($var)”等效的 Codeception。 根据文档,就像那样应该可以工作,但它不能,
我正在使用 PHPUnit 并尝试检查页面上是否存在文本。 assertRegExp 有效,但使用 if 语句时出现错误 Failed asserting that null is true. 我知道
JUnit 4教程 在这篇文章中,我们将通过一个例子学习如何使用assertTrue()方法。 assertTrue()方法属于JUnit 4org.junit.Assert类。 请在https://
我正在使用 assertTrue() 检查按钮是否存在。 Assert.assertTrue(isElementPresent(By.cssSelector(or.getProperty("addCu
我要验证以下类: @Document(collection = "settings") public class Settings { @NotEmpty private String
我正在尝试使用 JUnit 4.0 来测试应用程序是否在 boolean 方法上返回预期的输出。 测试类似于以下内容: import org.junit.Test; import static org
我在 TDD 环境中工作,我经常使用 assertTrue,而还有许多其他方法,例如 assert equals 等。我有一个类,我有 40 多个测试用例,它们都是 assertTrue。这是可以接受
关闭。这个问题是opinion-based .它目前不接受答案。 想改进这个问题?更新问题,以便 editing this post 提供事实和引用来回答它. 8年前关闭。 Improve this
我正在寻找一种方法来确保Collect(List)中包含的所有对象从谓词返回指定值。 伪代码: Collections.assertTrue(List, isBluePredicate) 我认为当前的
我在 Eclipse/Java 中使用 Selenium,并且有一个像这样的 Try/Catch: try { assertTrue(selenium.isTe
StringWriter result = runMethod.getOutput(); String expected = "textValue" assertTrue("Should
我正在为我们的应用程序编写一些测试,但我不确定我在这里测试的是正确的东西。这是我的测试。 def test_ReservationExtensionFalseWrongResource(self):
使用 phpunit 测试: $xml_1 = new SimpleXMLElement('Bugs'); $xml_2 = new SimpleXMLElement('Bugs'); $this->
有没有办法像 pytest 中的函数一样使用 assertTrue() 或 assertFalse() 来进行 python 单元测试?我有一个返回元素列表的函数。如果列表为空,则测试需要通过断言失败
在 Python unittest 模块中,在以下情况下使用 assertTrue() 与 assertEqual() 有什么优点或缺点? self.assertTrue(a == b) self.a
我对 Java 还很陌生,并且正在关注 Eclipse Total Beginner's Tutorials .它们都非常有用,但在第 12 课中,他对一个测试用例使用 assertTrue,对另一个
摘要 仅当我编译模块 ( junit.Assert.assertTrue ) 时,单元测试断言 ( mvn clean install ) 才会失败。但是,如果我运行 JUnit 则不会失败。在 Ec
我是一名优秀的程序员,十分优秀!