问题标签 [junit]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
12 回答
40048 浏览

JUnit 与 TestNG

在工作中,我们目前仍在使用 JUnit 3 来运行我们的测试。我们一直在考虑切换到 JUnit 4 来编写的测试,但我一直在关注 TestNG。你们都有哪些使用 JUnit 4 或 TestNG 的经验,并且对于大量测试似乎更有效?编写测试的灵活性对我们来说也很重要,因为我们的功能测试涵盖了广泛的方面,需要以多种方式编写才能获得结果。

旧的测试不会被重写,因为它们做得很好。不过,我希望在新测试中看到的是编写测试方式的灵活性、自然断言、分组和易于分布的测试执行。

0 投票
4 回答
7821 浏览

How to setup Groovy + Eclipse + Junit4?

I am working on a small webapp and I want to use Groovy to write some unit testing for my app. Most of my coding is done on Eclipse and I really want to run all the unit testing with the graphical test runner within Eclipse (I really like the green bar :) )

Sadly, after 4 hours of try-and-error, I'm still not able to setup properly. I tried to use the Eclipse Junit4 test runner to run a Groovy file with method annotated for testing using @Test. But it keeps complaining NoClassDefFoundException

Anyone can help?

Here is content of my groovy file, named simpleTest.groovy

Anyone can help?

0 投票
58 回答
1079708 浏览

如何测试具有私有方法、字段或内部类的类?

如何使用 JUnit 测试具有内部私有方法、字段或嵌套类的类?

仅仅为了能够运行测试而更改方法的访问修饰符似乎很糟糕。

0 投票
5 回答
24614 浏览

为不同的 JUnit 测试使用不同的类加载器?

我有一个 Singleton/Factory 对象,我想为其编写 JUnit 测试。Factory 方法根据类路径上的属性文件中的类名来决定要实例化哪个实现类。如果没有找到属性文件,或者属性文件不包含类名键,那么该类将实例化一个默认实现类。

由于工厂会在实例化后保留单例的静态实例以供使用,因此为了能够在工厂方法中测试“故障转移”逻辑,我需要在不同的类加载器中运行每个测试方法。

JUnit(或其他单元测试包)有什么方法可以做到这一点?

编辑:这是一些正在使用的工厂代码:

0 投票
5 回答
12887 浏览

用于数据库代码的 JUnit

我一直在尝试实现单元测试,目前有一些代码可以执行以下操作:

  1. 查询外部数据库,加载到提要表中
  2. 查询一个视图,这是我的提要和数据表的增量,更新数据表以匹配提要表

我的单元测试策略是这样的:

我有一个可以自由操作的测试数据库。

  1. 在 setUP() 中,将一些数据加载到我的测试数据库中
  2. 运行我的代码,使用我的测试数据库作为源
  3. 检查数据表,检查计数和某些记录的存在/不存在
  4. 清除测试数据库,加载不同的数据集
  5. 再次运行代码
  6. 再次检查数据表

显然,我已经设置了加载到源数据库中的数据集,以便我知道应该添加、删除、更新某些记录等。

这似乎有点麻烦,应该有一个更简单的方法?有什么建议么?

0 投票
6 回答
14506 浏览

单元测试 servlet

我有一堆在 Tomcat servlet 容器下运行的 servlet。我想将测试代码与生产代码分开,所以我考虑使用测试框架。JUnit 很好地集成到 Eclipse 中,但我未能使用正在运行的 Tomcat 服务器使其运行 servlet。您能否推荐一个支持测试 Tomcat servlet 的单元测试框架?Eclipse 集成很好,但不是必需的。

0 投票
2 回答
349 浏览

Why is a method call shown as not covered when the code within the method is covered with emma?

I am writing a unit test to check that a private method will close a stream.

The unit test calls methodB and the variable something is null

The unit test doesn't mock the class on test

The private method is within a public method that I am calling.

Using emma in eclipse (via the eclemma plugin) the method call is displayed as not being covered even though the code within the method is

e.g

Why would the method call not be highlighted as being covered?

0 投票
5 回答
13428 浏览

我应该用 JUnit 运行什么 GUI(类似于 NUnit gui)

应该使用什么 GUI 来运行我的 JUnit 测试,我该怎么做?我的整个背景都是 .NET,所以我习惯于启动我的 NUnit gui 并运行我的单元测试。如果灯是绿色的,我就干净了。

现在,我必须编写一些 Java 代码并想使用 JUnit 运行类似的东西。JUnit 文档非常清楚地说明了添加创建测试所需的属性,但它非常依赖于如何启动运行程序并查看这些测试的结果。

0 投票
3 回答
24816 浏览

如何在 Eclipse 中为新的 JUnit 测试默认源文件夹?

我们的大多数 Eclipse 项目都有多个源文件夹,例如:

  • 源/主/java
  • 源/测试/java

当您右键单击一个类并选择 New JUnit Test 时,新测试的默认源文件夹是“src/main/java”(可能是项目属性中列出的第一个源文件夹)。

有什么方法可以更改新 JUnit 测试的默认源文件夹,这样当我执行上述操作时,默认情况下会在“src/test/java”文件夹中创建新测试?

0 投票
11 回答
104123 浏览

jUnit 4.x 中的前后套件执行挂钩

我正在尝试为一组集成测试进行设置和拆卸,使用 jUnit 4.4 来执行测试。拆解需要可靠地运行。我在使用 TestNG 时遇到了其他问题,所以我希望移植回 jUnit。在运行任何测试之前和所有测试完成之后,哪些钩子可用于执行?

注意:我们使用 maven 2 进行构建。我尝试过使用 maven 的pre-&post-integration-test阶段,但是,如果测试失败,maven 会停止并且不会运行post-integration-test,这无济于事。