草庐IT

java - JUnit @Rule 生命周期与@Before 交互

我有一些使用TemporaryFolder@Rule的JUnit测试。他们在@Before方法中使用TemporaryFolder来执行一些设置:@RulepublicTemporaryFolderfolder=newTemporaryFolder();@Beforepublicvoidinit(){folder.newFile("my-file.txt");}@TestpublicvoidmyTest(){...}大多数情况下这都能完美运行。但是,在使用SpringJUnit4ClassRunner时,我发现在某些情况下,在TemporaryFolderStatement之前调用了i

java - 用于比较器的 Junit 匹配器?

这几天我一直在使用Junit的Matchers功能。一切正常,但我正在寻找一个匹配器,它使用比较器进行比较并且不依赖于对象等于方法。我要更换Assert.assertThat(one,CoreMatchers.equalTo(two)用类似(伪代码)的东西Assert.assertThat(eins,CoreMatchers.equalTo(operand,newMyComparator())您知道是否存在简单的开箱即用解决方案?我没有在谷歌中找到一个,也不想写一个。 最佳答案 Hamcrest2.0.0.0+现在支持此功能。您可以

java - JUnit 测试继承不起作用

publicabstractclassGenericTests{protectedabstractTgetT();@Testpublicvoidtest1(){getT();}}publicclassConcreteTests1extendsGenericTests{...}publicclassConcreteTests2extendsGenericTests{...}根本没有执行任何测试,两个具体类都被忽略了。我如何让它发挥作用?(我希望test1()对Integer和Double都执行)。我使用JUnit4.8.1。更新:问题似乎与maven-surefire-plugin有关,

java - Intellij Gradle 项目无法使用 junit 4.11 解析 assertEquals 作为 testCompile dep

我正在尝试在最新版本的IntellijIDEA(13.0.2)中设置一个简单的gradle项目。除了JUnit4,我没有其他依赖项,我的build.gradle文件如下所示:applyplugin:'java'sourceCompatibility=1.5version='1.0'repositories{mavenCentral()}dependencies{testCompilegroup:'junit',name:'junit',version:'4.11'}我正在尝试在我的主类测试套件中使用assertEquals,但Intellij为我提供了“无法解析方法assertEqua

java - JUnit 测试失败但显示相同的预期和实际结果

所以,我什至不知道从哪里开始。整个惨败始于八个多小时前,杰里一个接一个地帮我解决了问题。现在,这个:单击“单击以查看差异”后,它会变得更好:我有:-使缓存无效并重新启动IntelliJ-尝试运行whereDouble[]numSet={23.0};,然后将预期结果设置为numSet而不是[23.0]"。没有骰子。-关于添加增量的答案无效:JUnittestfailseveniftheexpectedresultiscorrect我觉得还值得注意的是,当从主类调用该方法时,据推测发生在第48行的错误并没有出现,所以我不知道那可能是什么。我们将不胜感激。这是被测试方法的代码。差点忘了:pu

java - JUnit4 测试类是否需要公共(public)无参数构造函数?

我有一个用JUnit4语法编写的测试类,可以在Eclipse中使用“作为junit测试运行”选项运行而不会失败。当我通过ant目标运行相同的测试时,出现此错误:java.lang.Exception:Testclassshouldhavepubliczero-argumentconstructoratorg.junit.internal.runners.MethodValidator.validateNoArgConstructor(MethodValidator.java:54)atorg.junit.internal.runners.MethodValidator.validate

java - JUnit:检查是否调用了 void 方法

我有一个非常简单的文件观察器类,它每2秒检查一次文件是否已更改,如果已更改,则调用onChange方法(void)。有没有一种简单的方法来检查单元测试中是否调用了onChange方法?代码:publicclassPropertyFileWatcherextendsTimerTask{privatelongtimeStamp;privateFilefile;publicPropertyFileWatcher(Filefile){this.file=file;this.timeStamp=file.lastModified();}publicfinalvoidrun(){longtimeS

java - 在 JUnit 中生成 HmacSHA256 签名

我正在尝试将我的消息签名到AmazonAWS(在JUnit测试中),但我遇到了一个问题。这是我正在使用的代码:StringsecretAccessKey="secret1234678901";SecretKeySpeckeySpec=newSecretKeySpec(secretAccessKey.getBytes(UTF-8),"HmacSHA256");Macmac=Mac.getInstance(this.MAC_ALGO);mac.init(keySpec);//hereitbreaksbyte[]encoded=mac.doFinal(request.toString().g

java - 如何在 JUnit 和 Java 中使用 stub ?

我使用过JUnit和Mocks,但我想知道,JUnit中的Mock和Stub有什么区别,以及如何在JUnit、Java中使用Stub?而Mocks有EasyMock、Mockito等,Stubs在Java中有什么用呢?请给出一些Javastub的示例代码。 最佳答案 在我看来,框架或技术无关紧要。模拟和stub可以定义如下。stub是系统中现有依赖项(或协作者)的可控替代品。通过使用stub,您可以在不直接处理依赖项的情况下测试您的代码。模拟对象是系统中决定单元测试通过或失败的假对象。它通过验证被测对象是否按预期与假对象进行交互来实

java - 在 JUnit 测试中处理 System.exit(0)

我正在为现有的JavaSwing应用程序实现一些测试,以便我可以安全地重构和扩展代码而不会破坏任何东西。我从JUnit中的一些单元测试开始,因为这似乎是最简单的入门方法,但现在我的首要任务是创建一些端到端测试来测试整个应用程序。我在每个测试中重新启动应用程序,方法是将每个测试方法放在一个单独的测试用例中,并在Ant的junit任务中使用fork="yes"选项.但是,我想作为测试实现的一些用例涉及用户退出应用程序,这导致调用System.exit(0)的方法之一。这被JUnit视为错误:junit.framework.AssertionFailedError:ForkedJavaVM异