我有一些正在测试的代码,它们呼吁Java记录器报告其状态。在JUnit测试代码中,我想验证此记录器中是否输入了正确的日志条目。遵循以下内容: methodUnderTest(bool x){ if(x) logger.info("x happened") } @Test tester(){ // perhaps setup a logger first. methodUnderTest(true); assertXXXXXX(loggedLevel(),Level.INFO); } 我想可以使用专门改编的记录器(或…

2020年11月30日 0条评论 69点热度 阅读全文

我将Hibernate用于我的DAO实现。我创建了映射,并覆盖了equals方法。 当我使用assertEquals(object,object)时,即使对象相同,它也会失败。Book.java package tn.jebouquine.pojo; @Entity public class Book { @Id private String ISBN; @NotEmpty private String name; @NotNull @DecimalMin(value = "0.00") private BigDe…

2020年11月14日 0条评论 51点热度 阅读全文

有人知道为什么JUnit 4提供assertEquals(foo,bar)而不提供assertNotEqual(foo,bar)方法吗? 它提供了assertNotSame(对应于assertSame)和assertFalse(对应于assertTrue),因此它们没有费心包括assertNotEqual似乎很奇怪。 顺便说一句,我知道JUnit插件提供了我正在寻找的方法。我只是出于好奇而问。 解决方案如下: 我建议您使用较新的 assertThat() 样式断言,该断言可以轻松描述各种否定,并自动建立对您期望的结…

2020年11月9日 0条评论 51点热度 阅读全文

如何在EasyMock发生异常后立即测试断言?例如,有一个方法storeIntoFile()检索对象并将其写入文件。如果出现异常,将删除该文件。我正在尝试测试此方法,以特别验证该文件在遇到异常时是否被删除。我要进行以下测试: @Test (expected IOException.class) public void testConnectionFailure throws IOException { File storeFile = File.createTempFile( "test", "test" ); s…

2020年10月21日 0条评论 52点热度 阅读全文

Java异常处理和使用assert条件之间有什么区别? 众所周知,Assert有两种类型。但是什么时候应该使用assert关键字呢? 解决方案如下: 将断言用于代码中的内部逻辑检查,并使用常规异常来处理直接代码无法控制的错误情况。 不要忘记可以打开和关闭断言-如果您关心参数验证之类的事情,则应该使用异常来明确声明。 (但是,您可以选择使用断言在私有(private)方法上执行参数验证,原因是此时的违反是由于内部错误而不是外部错误引起的。) 另外,对所有事物都使用异常是完全合理的(IMO)。我个人根本不使用断言,但这…

2020年10月18日 0条评论 55点热度 阅读全文

默认情况下,Java禁用断言。 (我在这里使用的测试是assert false;作为main()的第一行。) 我想在使用gradle run运行程序时启用它们。这样做的诀窍是什么? 解决方案如下: 您可以设置一个特定的标记enableAssertions来启用断言。与直接使用jvm args相比,此类标志通常更具可读性。我认为这取决于个人喜好。 您可以将以下内容添加到applicationDefaultJvmArgs文件中,而不是使用build.gradle: run { enableAssertions = tr…

2020年10月3日 0条评论 59点热度 阅读全文

如何在Eclipse中启用assert关键字? public class A { public static void main(String ... args) { System.out.println(1); assert false; System.out.println(2); } } 解决方案如下: 再具体一点: 转到Run->run configuration 在左侧导航 Pane 中选择java application。 右键单击 和select New。 选择Arguments选项卡 在VM参…

2020年9月25日 0条评论 57点热度 阅读全文

我该如何将assertThat变成null? 例如 assertThat(attr.getValue(), is("")); 但是我收到一条错误消息,说我不能在 null中包含 is(null)。 解决方案如下: 您可以使用 IsNull.nullValue() 方法: import static org.hamcrest.Matchers.is; import static org.hamcrest.Matchers.nullValue; assertThat(attr.getValue(), is(nullVa…

2020年9月21日 0条评论 45点热度 阅读全文

This question already has answers here: What does the Java assert keyword do, and when should it be used? (19个回答) 3年前关闭。 assert是做什么的? 例如在函数中: private static int charAt(String s, int d) { assert d >= 0 && d <= s.length(); if (d == s.length()) retu…

2020年9月15日 0条评论 67点热度 阅读全文

今天,我看到了一个带有Java断言而不是JUnit断言的JUnit测试用例-相对于另一个而言,优先选择一个优点还是缺点? 解决方案如下: 在JUnit4中,JUnit断言引发的异常(实际上是Error)与java assert关键字(AssertionError)引发的错误相同,因此它与assertTrue完全相同,除了堆栈跟踪之外,您无法分辨出区别。 话虽这么说,断言必须在JVM中使用特殊标志运行,导致许多测试似乎通过了,仅仅是因为有人在运行JUnit测试时忘记使用该标志配置系统-不好。 通常,因此,我认为使用J…

2020年9月8日 0条评论 61点热度 阅读全文