Questions tagged «junit4»

流行的Junit Java单元测试框架的版本4


2
@RunWith(MockitoJUnitRunner.class)vs MockitoAnnotations.initMocks(this)
在编写新的jUnit4测试时,我想知道是使用@RunWith(MockitoJUnitRunner.class) 还是MockitoAnnotations.initMocks(this)。 我创建了一个新测试,并且向导使用Runner自动生成了一个测试。MockitoJUnitRunner的Javadocs声明以下内容: 与JUnit 4.4和更高版本兼容,此运行器添加了以下行为: 初始化带有Mock注释的模拟,因此不需要显式使用MockitoAnnotations.initMocks(Object)。在每种测试方法之前都要初始化模拟。在每种测试方法之后验证框架使用情况。 我尚不清楚使用Runner是否比我过去使用过的initMocks()方法有任何优势。 任何想法或链接将不胜感激!
118 java  junit4  mockito 

30
未找到测试运行程序“ JUnit 4”的测试
我的Java测试在Eclipse上运行良好。但是现在,当我从运行菜单重新启动测试时,我收到以下消息: No tests found with test runner 'JUnit 4' 在.classpath文件中,我有所有jar文件,最后有: <classpathentry exported="true" kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/> <classpathentry kind="output" path="bin"/> </classpath> 如何解决此错误并重新运行测试?
105 java  eclipse  junit  junit4 

7
如何断言Iterable包含具有特定属性的元素?
假设我要使用此签名对方法进行单元测试: List<MyItem> getMyItems(); 假设MyItem是一种Pojo,它具有许多属性"name",可通过访问其中一个属性getName()。 我只想验证的是List<MyItem>或Iterable包含两个MyItem实例,它们的"name"属性值为"foo"和"bar"。如果其他属性不匹配,那么我真的不在乎此测试的目的。如果名称匹配,则表示测试成功。 如果可能,我希望它成为一线客。这是我想做的一些“伪语法”。 assert(listEntriesMatchInAnyOrder(myClass.getMyItems(), property("name"), new String[]{"foo", "bar"}); Hamcrest会适合这种事情吗?如果是这样,上面的伪语法的hamcrest版本到底是什么?


3
如何使用Gradle运行JUnit测试?
目前,我有以下build.gradle文件: apply plugin: 'java' sourceSets { main { java { srcDir 'src/model' } } } dependencies { compile files('libs/mnist-tools.jar', 'libs/gson-2.2.4.jar') runtime fileTree(dir: 'libs', include: '*.jar') } 这的build.gradle文件是我的仓库在这里。我所有的主要文件都在src / model /中,它们各自的测试都在test / model中。 如何正确添加JUnit 4 依赖项,然后在测试/模型文件夹中运行那些测试?

6
Mockito:模拟私有字段初始化
我如何模拟正在内联初始化的字段变量? class Test { private Person person = new Person(); ... public void testMethod() { person.someMethod(); ... } } 在这里,我想person.someMethod()在测试Test.testMethod()需要模拟person变量初始化的方法时进行模拟。有什么线索吗? 编辑:我不允许修改Person类。

11
在Kotlin中测试预期的异常
在Java中,程序员可以为JUnit测试用例指定预期的异常,如下所示: @Test(expected = ArithmeticException.class) public void omg() { int blackHole = 1 / 0; } 我将如何在Kotlin中做到这一点?我尝试了两种语法变体,但没有一个起作用: import org.junit.Test // ... @Test(expected = ArithmeticException) fun omg() Please specify constructor invocation; classifier 'ArithmeticException' does not have a companion object @Test(expected = ArithmeticException.class) fun omg() name expected ^ ^ expected ')'

5
在junit测试类中重用spring应用程序上下文
我们有一堆JUnit测试用例(集成测试),它们在逻辑上分为不同的测试类。 我们可以在每个测试类中加载一次Spring应用程序上下文,然后将其重新用于JUnit测试类中的所有测试用例,如http://static.springsource.org/spring/docs/current/spring-framework-reference中所述/html/testing.html 但是,我们只是想知道是否有一种方法可以对一堆JUnit测试类仅加载一次Spring应用程序上下文。 FWIW,我们使用Spring 3.0.5,JUnit 4.5并使用Maven构建项目。

16
Maven 3和JUnit 4编译问题:包org.junit不存在
我正在尝试使用Maven构建一个简单的Java项目。在我的pom文件中,我将JUnit 4.8.2声明为唯一依赖项。Maven仍然坚持使用JUnit版本3.8.1。我如何解决它? 该问题表现为编译失败:“软件包org.junit不存在”。这是由于我的源代码中的import语句。JUnit 4. *中正确的软件包名称是org.junit。*,而在版本3. *中正确的软件包名称是junit.framework。* 我想我已经在http://maven.apache.org/plugins/maven-surefire-plugin/examples/junit.html上找到了有关问题根源的文档,但该建议似乎是针对Maven专家的。我不知道该怎么办。

4
Maven错误:包org.junit不存在
我正在尝试使用maven创建javadoc,但失败。进行验证时,它也会失败。 mvn verify 我收到以下错误: (...) [INFO] ------------------------------------------------------------- [ERROR] COMPILATION ERROR : [INFO] ------------------------------------------------------------- [ERROR] /home/miquel/creaveu/createOmegaMatrix/src/main/java/edu/url/salle/gtm/hnm/dataStructures/HFrame.java:[6,23] package org.junit does not exist [ERROR] /home/miquel/creaveu/createOmegaMatrix/src/main/java/edu/url/salle/gtm/hnm/dataStructures/HFrame.java:[6,0] static import only from classes and interfaces (···) 在我的pom.xml文件中,有以下几行: <dependency> <groupId>org.junit</groupId> <artifactId>junit</artifactId> <version>4.8.2</version> <scope>test</scope> </dependency> 我的本地存储库包含junit jar文件: miquel@ubuntu:~/creaveu/createOmegaMatrix$ ls -l /home/miquel/.m2/repository/org/junit/junit/4.8.2/ total 248 **-rw-r--r-- 1 miquel miquel 237344 …
78 java  maven-3  junit4 

19
java.lang.Exception:运行JUnit时没有可运行的方法异常
我试图在Linux命令提示符下运行JUnit,/opt/junit/其中包含必要的JARS(hamcrest-core-1.3.jar和junit.jar)和类文件,并且正在使用以下命令来运行JUnit: java -cp hamcrest-core-1.3.jar:junit.jar:. org.junit.runner.JUnitCore TestRunner TestJunit类: import org.junit.Test; import static org.junit.Assert.assertEquals; public class TestJunit { @Test public void testAdd() { String str= "Junit is working fine"; assertEquals("Junit is working fine",str); } } TestRunner: import org.junit.runner.JUnitCore; import org.junit.runner.Result; import org.junit.runner.notification.Failure; public class TestRunner { public static void main(String[] args) { …

5
将测试文件导入JUnit的简单方法
有人可以建议一种简单的方法来在junit测试类中获取对文件的引用作为String / InputStream / File / etc类型对象吗?显然,我可以将文件(在这种情况下为xml)粘贴为巨型String或将其作为文件读取,但是是否有像这样的Junit专用快捷方式? public class MyTestClass{ @Resource(path="something.xml") File myTestFile; @Test public void toSomeTest(){ ... } }

8
为什么不能将AndroidJUnit4和ActivityTestRule导入单元测试类?
我在导入某些Android UI测试框架类时遇到了麻烦-我只是不知道出了什么问题! 这是我的课: @RunWith(AndroidJUnit4.class) @LargeTest public class ExampleUnitTest { @Rule public ActivityTestRule<MainActivity> mActivityRule = new ActivityTestRule(MainActivity.class); @Test public void listGoesOverTheFold() { onView(withText("Hello world!")).check(matches(isDisplayed())); } } 但是由于某种原因,我得到了错误“找不到符号ActivityTestRule”和“找不到符号AndroidJUnit4”。我尝试导入它们,但找不到它们。 build.gradle中的依赖项设置为: compile fileTree(dir: 'libs', include: ['*.jar']) testCompile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:23.4.0' androidTestCompile 'com.android.support:support-annotations:23.4.0' androidTestCompile 'com.android.support.test:runner:0.4' androidTestCompile 'com.android.support.test:rules:0.4' androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.1' androidTestCompile 'com.android.support.test.uiautomator:uiautomator-v18:2.1.2' 所以我想我已经完成了所有依赖项设置-我已经尝试了很多事情,但是没有运气。 谁有想法?

6
如何在JUnit 4中运行属于某个类别的所有测试
JUnit 4.8包含一个很好的新功能,称为“类别”,使您可以将某些类型的测试组合在一起。这非常有用,例如为慢速和快速测试分别进行测试。我知道JUnit 4.8发行说明中提到的内容,但想知道我如何才能实际运行带有特定类别注释的所有测试。 JUnit 4.8发行说明显示了一个示例套件定义,其中SuiteClasses批注从特定类别中选择要运行的测试,如下所示: @RunWith(Categories.class) @IncludeCategory(SlowTests.class) @SuiteClasses( { A.class, B.class }) // Note that Categories is a kind of Suite public class SlowTestSuite { // Will run A.b and B.c, but not A.a } 有谁知道我可以如何在SlowTests类别中运行所有测试?看来您必须具有SuiteClasses批注...

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.