草庐IT

Junit-Tests

全部标签

java - 从 IntelliJ IDEA (Android) 运行 JUnit 测试时为 "Class not found"

尝试在IntelliJIdea中运行一些AndroidJUnit测试时遇到问题。我的项目是一个使用Gradle的Android库项目。当我运行我的测试时,IntelliJ提示以下错误:Classnotfound:"com.domain.app.ClassTest"但是ClassTest存在于测试包中。这是我的build.gradle:applyplugin:'android-library'buildscript{repositories{mavenCentral()}dependencies{classpath'com.android.tools.build:gradle:0.10.

java - 如何替换 JUnit 5 中的 WireMock @Rule 注释?

我在测试中使用WireMock并有这样一行代码:@RulepublicWireMockRulewireMockRule=newWireMockRule(8080);我想切换到JUnit5。所以我添加了下一个依赖项(使用Gradle):testCompile('org.junit.jupiter:junit-jupiter-engine:5.1.1')但是当我尝试导入@Rule注释时没有任何建议。我需要添加另一个JUnit依赖模块吗?还是JUnit5不支持规则?如果没有,我如何替换@Rule注释以使测试再次工作? 最佳答案 一般来说,

java - 如何jUnit测试另一个线程中代码的结果

我有一个在线程中运行的进程(用作实时信号分析进程)。我想为该线程进程提供一个已知输入,然后在jUnit中测试输出是否正确。我有一个回调监听器,它可以在线程完成数据处理时通知我,并且我可以通过将测试用例本身注册为监听器来成功地对结果运行断言。当这些断言失败时,它们会抛出异常。但是这个异常并没有被jUnit注册为失败,大概是因为它们发生在测试方法之外。如何构建我的jUnit测试,以便在监听器返回后测试正确失败?这是代码的简化版本。publicclassPitchDetectionTestextendsTestCaseimplementsEngineRunCompleteListener()

java - JUnit 规则临时文件夹

我正在使用JUnit4.7中的@Rule注释创建一个TemporaryFolder。我尝试在我的@Before(设置)方法中使用tempFolder.newFolder("someFolder")创建一个新文件夹,它是临时文件夹的子文件夹测试。好像临时文件夹在安装方法运行后被初始化,这意味着我不能在安装方法中使用临时文件夹。这是正确的(且可预测的)行为吗? 最佳答案 这是Junit4.7中的问题。如果您升级较新的Junit(例如4.8.1),则在您输入@Before方法时,所有@Rule都将运行:s。一个相关的错误报告是这样的:ht

java - 缺少 "Run as JUnit Test"

我通过右键单击Java类并选择新建JUnit测试用例,在Eclipse中创建了一个JUnit4测试。当我右键单击测试类时,我得到“在服务器上运行”,但不是“作为JUnit测试运行”。我正在使用Eclipse3.6.1。 最佳答案 在我的例子中,Eclipse一定已经达到损坏状态。重新启动Eclipse解决了问题。 关于java-缺少"RunasJUnitTest",我们在StackOverflow上找到一个类似的问题: https://stackoverflo

java - 如何添加不从 TestCase 扩展到 TestSuite 的 JUnit 4 测试?

在JUnit3中我只是调用suite.addTestSuite(MyTest.class)但是,如果MyTest是一个不扩展TestCase的JUnit4测试,这将不起作用。我应该怎么做才能创建一套测试? 最佳答案 对于那些需要与新的v4风格共存的大量3.8风格套件/测试的人,您可以执行以下操作:importorg.junit.runner.RunWith;importorg.junit.runners.Suite;@RunWith(Suite.class)@Suite.SuiteClasses({//AddaJUnit3suite

java - 来自 JUnit 的 getResourceAsStream

我正在为需要在初始化期间加载配置文件的项目创建JUnit测试用例。此配置文件位于src/main/resources/config文件夹中的项目内,在构建期间,maven将其放入JAR内的/config文件夹中。初始化类,使用以下语句从那里读取文件:ClassLoaderclassloader=this.getClass().getClassLoader();BufferedReaderxmlSource=newBufferedReader(newInputStreamReader(classLoader.getResourceAsStream("/config/config.xml"

java - 如何在 Eclipse 中运行单个 JUnit 测试方法?

这个问题在这里已经有了答案:RunningasingleJUnittestinEclipse(14个答案)关闭7年前。在带有多个@Test注解的JUnit测试用例中,如何有选择地运行测试?例如,从下面的代码中,如何只运行一种测试方法?@TestpublicvoidtestHelloEmpty(){assertEquals(h.getName(),"");assertEquals(h.getMessage(),"Hello!");}@TestpublicvoidtestHelloWorld(){//h.setName("World");assertEquals(h.getName(),"

java - Junit 在通过测试时抛出警告

目前我正在做一个项目,我们正在使用junit进行测试,但由于它仍处于相当早期的阶段,许多功能尚未实现,尽管他们已经为它们编写了测试这意味着这些测试(显然)总是失败我想知道是否有人知道让JUnit在显示警告的同时通过测试的方法。最好使用可自定义的消息,以便我们可以注意到该功能尚未实现。重点是我们希望编写代码以便仅在所有测试都通过时进行编译,而目前这根本不可能。我意识到我们可以只注释掉或删除问题测试,但我们冒着忘记稍后将它们添加回来的风险。 最佳答案 org.junit.Assume会满足您的需求吗?

java - 在 JUnit 测试中检查深度相等性

我正在为克隆、序列化和/或写入XML文件的对象编写单元测试。在这三种情况下,我都想验证生成的对象是否与原始对象“相同”。我在我的方法中经历了几次迭代,发现了所有这些方法的错误,想知道其他人做了什么。我的第一个想法是在所有类中手动实现equals方法,并使用assertEquals。在决定覆盖equals以对可变对象执行深度比较是一件坏事之后,我放弃了这种方法,因为您几乎总是希望集合对它们包含的可变对象使用引用相等性[1]。然后我想我可以将方法重命名为contentEquals或其他名称。然而,经过更多思考,我意识到这不会帮助我找到我正在寻找的那种回归。如果程序员添加了一个新的(可变的)