草庐IT

Junit-Tests

全部标签

Java,Junit - 捕获标准输入/输出以用于单元测试

这个问题在这里已经有了答案:JUnittestforSystem.out.println()(14个回答)关闭8年前。我正在使用JUnit编写集成测试来自动化基于控制台的应用程序的测试。该应用程序是家庭作业,但这部分不是家庭作业。我想自动化这些测试以提高效率——我不想返回并重新测试应用程序中已经测试过的部分。(使用单元测试的标准原因)无论如何,我无法弄清楚或找到有关捕获输出的文章,以便我可以对其进行assertEquals也不提供自动输入。我不在乎输出/输入是否进入控制台/输出Pane。我只需要执行测试并验证输出是给定输入的预期结果。任何人都有文章或代码来帮助解决这个问题。

java - 将消息记录到 JUnit 控制台

有时在我编写单元测试时,在JUnit控制台(我使用的是IntelliJ,但我认为Eclipse非常相似)中记录日志消息并在我运行测试时查看它们很有用。问题是System.out.println不起作用。有人对如何将日志消息打印到JUnit控制台有任何提示吗? 最佳答案 您应该选择左侧树中的测试以在右侧的控制台中查看其输出: 关于java-将消息记录到JUnit控制台,我们在StackOverflow上找到一个类似的问题: https://stackoverfl

java - 在 @After 方法中检测 Junit 测试的失败或错误

JUnit中是否有办法在@After注释的方法中检测测试用例中是否存在测试失败或错误?一个丑陋的解决方案是这样的:booleanwithoutFailure=false;@Testvoidtest(){...asserts...withoutFailure=true;}@AfterpublicvoidtearDown(){if(!withoutFailuere){this.dontReuseTestenvironmentForNextTest();}}这很难看,因为需要注意测试代码中的“基础设施”(没有失败标志)。希望有什么东西可以在@After方法中获取测试状态!?

java - JUnit java.lang.NoSuchMethodError : junit. framework.ComparisonFailure.getExpected()Ljava/lang/String

我从之前成功运行但现在抛出此异常的测试用例中得到以下异常:java.lang.NoSuchMethodError:junit.framework.ComparisonFailure.getExpected()Ljava/lang/String;atorg.eclipse.jdt.internal.junit4.runner.JUnit4TestListener.testFailure(JUnit4TestListener.java:63)atorg.junit.runner.notification.RunNotifier$4.notifyListener(RunNotifier.ja

java - 如何在另一个测试类中重用现有的 JUnit 测试?

如何在另一个测试类中重用JUnit测试?例如:publicTestClass1{@TestpublicvoidtestSomething(){...}}publicTestClass2{@TestpublicvoidtestSomethingAndSomethingElse(){//SomehowexecutetestSomething()//andthentestsomethingelse}} 最佳答案 一般来说,避免这种情况。它很容易使测试变得更加脆弱。如果TestClass1失败,那么TestClass2就会隐式失败,至少出于

java - JUnit 中的注解列表

最近研究并实现了JUnit框架。因此,我知道JUnit中使用的注释很少:-@Test、@Before、@After、@忽略、@BeforeClass、@AfterClass、@Runwith(Suite.class)、@SuiteClasses({})、@Parameters、@RunWith(Parameterized.class)和@Rule。我确信在JUnit中使用了更多的注解。谁能指导我列出更多可以使用的注释以及在什么情况下使用它们?谢谢。 最佳答案 此Github搜索(@interface)为您提供所有注释的列表:http

java - 如何使用 JUnit 测试类的验证注释?

我需要测试validationannotations但看起来它们不起作用。我不确定JUnit是否也正确。目前,测试将通过,但您可以看到指定的电子邮件地址是错误的。JUnitpublicstaticvoidtestContactSuccess(){Contactcontact=newContact();contact.setEmail("Jackyahoo.com");contact.setName("Jack");System.err.println(contact);}要测试的类publicclassContact{@NotNull@Size(min=1,max=10)Stringn

Java 9 + maven + junit : does test code need module-info. java 自己的,放在哪里?

假设我有一个使用Maven3和junit的Java项目。src/main/java和src/test/java目录分别包含主源和测试源(一切都是标准的)。现在我想将项目迁移到Java9。src/main/java内容代表Java9模块;com/acme/project/module-info.java看起来大概像这样:modulecom.acme.project{requiremodule1;requiremodule2;...}如果测试代码需要自己的module-info.java怎么办?例如,添加对仅用于测试而不是生产代码的某些模块的依赖。在这种情况下,我必须将module-inf

java - JUnit 3 是否有类似于@Ignore 的东西

我被迫使用JUnit3。如果我使用JUnit4,我偶尔会使用@Ignore,因为我的一些测试需要一些时间。在JUnit4中有什么类似的东西吗?注释掉测试是草率的,更改名称(来自testXxx())可能会导致忘记测试。@Ignore很棒,因为它总是提醒你哪些测试没有运行。有没有人有在JUnit3中运行某些测试类方法的最佳实践? 最佳答案 除了注释掉测试或重命名它们之外,我不知道任何其他解决方案。我会选择重命名选项并使用我自己的约定。例如,它们都以ignoreXXX()开头。然后你可以用你的编辑器进行一次查找/替换,你就准备好了。

java - 测试两个对象实例是否相等 JUnit

这个问题在这里已经有了答案:HowdoIassertequalityontwoclasseswithoutanequalsmethod?(23个回答)关闭5年前。我有两个对象A和B。ObjectA是我在JUnit测试期间得到的实际结果。对象B是我进行实际的enddb调用并假设为预期审查。我需要断言两个对象实例A和B在value中相等,而不是实际对象。我们在JUnit中有一个名为assertEquals(objexpected,objactual)的方法,但我不希望这样。有没有办法或解决方法来达到同样的效果? 最佳答案 想一想你想要达