问题标签 [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 投票
3 回答
6548 浏览

junit - 使用 junitperf 运行 junit4 测试

可以将 Junitperf 与 junit4 一起使用吗?我有一个带有多个测试的简单 Junit4 测试类,我想对该类的单个测试进行 TimedTest。我怎样才能做到这一点?

更清楚地说,我的 Junit4 课程类似于:

使用 junit3 我应该写一些类似的东西:

与 Junit4?

0 投票
2 回答
10290 浏览

java - JUnit 没有提供有关“错误”的信息

我正在使用 Junit 4.4 和 Ant 1.7。如果一个测试用例因错误而失败(例如,因为一个方法抛出了意外的异常),我不会得到任何关于错误是什么的详细信息。

我的 build.xml 看起来像这样:

当我运行“ant test”时,它显示(例如)2 次测试运行,0 次失败,1 次错误。它没有说“没有像 NoSuchTest 这样的测试”,尽管这是完全合理的,并且会让我找出错误的原因。

谢谢!

-担

0 投票
4 回答
12270 浏览

java - 如何在代码中激活 JButton ActionListener(单元测试目的)?

我需要在 JDialog 中激活一个 JButton ActionListener,这样我就可以使用 JUnit 进行一些单元测试。

基本上我有这个:

然后我有我的 JUnit 文件:

在单元测试中这听起来可能是多余的,但实际的类比这要复杂得多......

0 投票
3 回答
3071 浏览

java - 在 JUnit 测试中处理 Swing 事件

我有 Swing java 应用程序,它与几个“播放器”进行网络通信,这些播放器对象表示为播放器对象,每个播放器对象都有自己的通信线程。该应用程序有一个管理所有玩家对象的“团队”对象。几个 UI 组件通过 Team 对象监听玩家传递的事件。

在我的设计中,团队对象使用 invokeLater 触发 Swing 线程上的所有事件,这样我的应用程序的其余部分就不必为线程问题而烦恼。但是,我不知道如何在 JUnit 测试中测试 Team 类。

多一点背景。起初,我让 Team 对象在玩家对象线程上触发其事件(根本没有线程切换)。Team 单元测试成功了,但是我在 UI 中使用 invokeLaters 遇到了许多线程问题,并且在所有地方都进行了同步。然后我决定通过让 Team 对象在 Swing 线程上触发事件来简化线程模型,但是现在 Team 单元测试失败了,因为它没有接收到事件。该怎么办?

想到的一个解决方案是在 Team 之上引入一个额外的对象,该对象执行线程切换并保持原始单元测试的完整性,但我不喜欢在生产代码中引入复杂性以使单元测试成功的想法。

0 投票
6 回答
9425 浏览

java - 使用 JUnit 3.x 与 JUnit 4.x 运行测试仍然是最佳实践吗?

我有一段时间没看过这个了,但如果我没记错的话,ant 和 maven 仍然依赖 JUnit 3 进行单元测试(从 maven 2.09 开始,默认的 POM 文件仍然有 JUnit 3.81)。

坚持使用 JUnit 3 而不是使用最新最好的版本是否仍然有意义?我可能会失踪有什么好的理由吗?

0 投票
2 回答
4619 浏览

sql - 从 JUnit 运行 SQL 脚本

在我正在处理的 JUnit 测试用例的设置方法中,我需要它在每个测试用例之前在我的数据库上运行一个 sql 脚本,然后在之后回滚。

我尝试使用分词器,它将每个 SQL 命令添加到一个批处理中,然后执行它们。但我无法工作。所以我的问题是,JUnit 中是否有一些标准方法可以执行此操作?

0 投票
2 回答
2961 浏览

junit - 应该测试@Entity Pojos 吗?

我不知道我是否应该测试我的@Entity 注释 Pojos。毕竟,主要只是生成的 getter/setter。我应该测试它们吗?

在测试 DAO 时,我使用了所有这些实体——所以我猜它们已经经过适当的测试了?

谢谢你的想法。

马特

0 投票
3 回答
20951 浏览

java - 运行 Spring 单元测试的 AOP 问题

我有一个 Spring Web 应用程序,它被配置为使用 JDK 代理进行 AOP。AOP 注释(例如@Transactional)是在接口上声明的,而不是在实现类上声明的。

应用程序本身运行良好,但是当我运行单元测试时,它似乎试图将 CGLIB 用于 AOP 功能(而不是 JDK 代理)。这会导致测试失败 - 我在下面附加了堆栈跟踪。

我不明白为什么在运行测试时使用 CGLIB,因为 Spring 配置与应用程序运行时的配置基本相同。一个可能显着的区别是测试配置使用DataSourceTransactionManager而不是 JTA 事务管理器。测试类本身都扩展AbstractJUnit4SpringContextTests,难道这个类以某种方式硬连线以使用 CGLIB?

编辑:其中一位评论员要求我发布 Spring configuration。我以缩写形式将它包含在下面(即省略了不相关的 bean 和 XML 名称空间)。

spring-servlet.xml

applicationContext-service.xml

applicationContext-test.xml这仅在运行单元测试时包含。它的目的是覆盖在其他配置文件中声明的一些 bean。

0 投票
4 回答
42955 浏览

java - JUnit 4:在运行测试之前在测试套件中设置东西(就像测试的 @BeforeClass 方法,仅用于测试套件)

我想对(宁静的)网络服务进行一些功能测试。测试套件包含一堆测试用例,每个测试用例在 web 服务上执行几个 HTTP 请求。

自然,Web 服务必须运行,否则测试将失败。:-)

启动 web 服务需要几分钟(它会处理一些繁重的数据提升),所以我想尽可能不频繁地启动它(至少所有只有从服务中获取资源的测试用例才能共享一个)。

那么有没有办法在测试套件中设置炸弹,就像在测试用例的 @BeforeClass 方法中一样运行测试?

0 投票
3 回答
2368 浏览

java - 从 JUnit 测试确认 FileReader 已正确关闭

我正在编写一些 Java 代码,它使用 FileReader 从几个输入文件中加载数据。我正在大量使用 TDD,并且我想添加一些测试,以确保我在完成后通过在阅读器上调用 close() 来正确清理它。不幸的是,我想不出一个好的方法来测试这个。有人有任何见解吗?

编辑添加:我知道我可以使用模拟对象显式测试关闭调用,但如果可能的话我想避免它,部分原因是我发现它们会导致代码有些脆弱,部分原因是我很好奇它是否可能编写可以识别不关闭文件的影响的代码。)