草庐IT

java - 如何使用 JUnit、EasyMock 或 PowerMock 模拟静态最终变量

我想模拟一个静态最终变量以及使用JUnit、EasyMock或PowerMock模拟一个i18n类。我该怎么做? 最佳答案 有没有像mocking这样的变量?我会称之为重新分配。我认为EasyMock或PowerMock不会为您提供重新分配staticfinal字段的简单方法(这听起来像是一个奇怪的用例)。如果你想这样做,你的设计可能有问题:如果你知道一个变量可能有另一个值,即使是为了测试目的,也要避免使用staticfinal(或更常见的全局常量)。无论如何,您可以使用反射来实现(来自:Usingreflectiontochang

java - 使用 junit @Rule、expectCause() 和 hamcrest 匹配器

我有一个测试:@RulepublicExpectedExceptionthrown=ExpectedException.none();...@TestpublicvoidtestMethod(){finalStringerror="errormessage";ThrowableexpectedCause=newIllegalStateException(error);thrown.expectCause(org.hamcrest.Matchers.equalTo(expectedCause));someServiceThatTrowsException.foo();}当通过mvn测试方

java - !!!预计 JUnit 版本 3.8 或更高版本

这个问题在这里已经有了答案:IntelliJIDEAwithJunit4.7"!!!JUnitversion3.8orlaterexpected:"(26个回答)关闭5年前。我的AndroidStudio项目有一个依赖于android框架的app模块,我创建了一个名为domain的新模块,它只包含纯java类和一些测试类。在这个模块的build.gradle文件中,我添加了junit和mockito库用于测试目的如下:applyplugin:'java'sourceCompatibility=1.7targetCompatibility=1.7dependencies{testComp

java - 使用 JUnit 4 注释测试多个异常

是否可以在单个JUnit单元测试中测试多个异常?我知道一个可以使用的异常(exception),例如@Test(expected=IllegalStateException.class)现在,如果我想测试另一个异常(比如NullPointerException),可以在同一个注解中完成,还是在不同的注解中完成,还是我需要完全编写另一个单元测试? 最佳答案 你真的希望测试做一件事,并为此进行测试。如果您不确定要抛出哪个异常,那听起来对我来说不是一个好的测试。例如(伪代码)try{badOperation();///lookslikew

java - 在eclipse中找不到作为junit测试运行

我像这样在Eclipse中创建了一个测试类@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration(locations={"classpath:applicationContext.xml"})@TransactionConfiguration@TransactionalpublicclassTeamTestextendsAbstractTransactionalJUnit4SpringContextTests{@TestpublicvoidtestCreate(){assert(true);}}但是,当我右键单击该文件时

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就会隐式失败,至少出于