草庐IT

java - 使用 Junit 4.4 或更高版本运行 Eclipse Junit 插件测试——为什么没有检测到测试?

我需要在一组eclipse插件测试中使用JUnit4.4(或更新版本),但我遇到了以下问题:使用springsource的junit4.4或4.5包运行时未检测到测试(junit44和junit45)。可以用eclipse获得的org.junit4包提供了junit4.3(从Ganymead/Eclipse3.4开始)。org.junit4包确实可以识别和运行测试,但它与最新版本的JMock不兼容,我需要使用模拟库。这是一个示例测试:packagetestingplugin;importstaticorg.junit.Assert.*;importorg.junit.Test;publ

java - 可靠的 Java 单元测试自动化? (JUnit/Hamcrest/...)

意图我正在寻找以下内容:可靠的单元测试方法我的方法中缺少什么?我做错了什么?我在做什么没必要?一种尽可能自动完成工作的方法当前环境Eclipse作为IDEJUnit作为测试框架,集成到Eclipse中Hamcrest作为“匹配器”库,以提高断言的可读性GoogleGuava用于前置条件验证目前的做法结构每个类一个测试类进行测试按静态嵌套类分组的方法测试测试方法命名以指定测试行为+预期结果Java指定的预期异常Annotation,不在方法名中方法论注意null值注意空List注意空String注意空数组注意由代码(后置条件)改变的对象状态不变量方法接受记录的参数类型边界检查(例如Int

java - 在同一个构建中执行 JUnit 4 和 JUnit 5 测试

在Maven项目中,我有一些现有的测试依赖于JUnit4。由于多种原因,我无法在JUnit5中迁移这些测试。本质上,一些测试依赖于使用JUnit4运行器的库,代码迁移可能需要一些时间。我同样希望使用现已发布并提供新的有趣功能的JUnit5创建新的测试类。该怎么做? 最佳答案 JUnit5提供awayoutofthebox.JUnit5=JUnitPlatform+JUnitJupiter+JUnitVintage每一个都是一个不同的项目,使用它们可以在同一个项目中编译和执行JUnit4和JUnit5测试。JUnitJupiteris

java - 在测试之间传递 JUnit 数据

我刚刚在创建一些CRUD测试时发现,您无法在一个测试中设置数据并让它在另一个测试中读取(数据在每次测试之间设置回其初始化)。我要做的就是(C)用一个测试创建一个对象,然后(R)用下一个测试读取它。JUnit是否有办法做到这一点,或者它是否在意识形态上进行了编码,使得测试不允许相互依赖? 最佳答案 嗯,对于单元测试,您的目标应该是测试最小的独立代码片段,通常是逐个方法。所以testCreate()是一个测试用例,而testRead()是另一个。但是,没有什么可以阻止您创建一个testCreateAndRead()来一起测试这两个函数。

java - ant junit 任务不报告详细信息

我尝试用JUnit测试编写一个Ant,但得到以下结果:unittest:[junit]Runningcom.mytest.utiltest[junit]Testsrun:1,Failures:0,Errors:1,Timeelapsed:0sec[junit]Testcom.mytest.utiltestFAILED它只是显示错误而没有打印详细信息,我在build.xml中指定以下参数也尝试从ant-v或ant-debug开始,但没有得到任何运气。有人可以帮忙吗?ant1.8.2、sunjdk1.6.0_20、junit4.8.2为了缩小问题范围,我创建了一个单独的项目这是我的buil

java - junit-jupiter-api 和 junit-jupiter-engine 的区别

maven模块junit-jupiter-api和junit-jupiter-engine有什么区别?是否需要在build.gradle中同时包含这两个依赖项?我需要同时提供这两个依赖项吗?testCompile("org.junit.jupiter:junit-jupiter-engine:${junitVersion}")testCompile("org.junit.jupiter:junit-jupiter-api:${junitVersion}")或者只有一个依赖就足够了?testCompile("org.junit.jupiter:junit-jupiter-engine:$

java - Junit - 多个 @Before 与一个 @Before 拆分为方法

在单元测试中,我需要执行一个相当复杂的设置(这可能是代码异味,但这不是这个问题的主题:-))。我感兴趣的是,是让多个@Before方法执行设置更好,还是只有一个方法更好,它调用辅助方法来执行初始化。例如@BeforepublicvoidsetUpClientStub(){}@BeforepublicvoidsetUpObjectUnderTest(){}对比@BeforepublicvoidsetUp(){setUpClientStub();setUpObjectUnderTest();} 最佳答案 正如在其他回复中所说,JUnit

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