问题标签 [spring-test]

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 投票
4 回答
128010 浏览

spring - 如何在使用 @RunWith 和 @ContextConfiguration 注释的 jUnit 测试中访问 Spring 上下文?

我有以下测试课

是否可以通过services-test-config.xml其中一种方法以编程方式访问?喜欢:

0 投票
1 回答
1385 浏览

transactions - 使用 Spring Test 自动回滚 DAO 集成测试是一种好习惯吗?

如果我用 @Transactional 注释我的 DAO 集成测试方法,Spring Test 将在每个测试方法完成后愉快地回滚对数据库的任何更改。这些看起来非常方便,因为我可以使用 @BeforeClass 方法加载测试数据一次,所有清理工作都为我处理。

但我质疑这是否是一种好的做法,因为我会错过发现提交期间可能发生的故障的机会。在 DAO 的 dbunit 集成测试中使用事务来帮助清理的共识是什么?

0 投票
5 回答
10834 浏览

junit - 如何使用 Spring Test 为每个案例加载一次 DBUnit 测试数据

Spring Test 有助于回滚测试方法中对数据库所做的任何更改。这意味着无需在每个测试方法之前花时间删除/重新加载测试数据。

但是如果你使用 @BeforeClass Junit 注释,那么这会强制数据加载器是静态的。这里探讨的一个问题: 为什么 jUnit 的 fixtureSetup 必须是静态的?

如果数据初始化方法是静态的,那么数据连接方法和数据源也必须是静态的......并且不断地......强制一切都是静态的......这是行不通的。在这一点上,我问 - 当您必须为每个测试删除/重新加载测试数据时,Spring Test 回滚更改的能力有什么好处??!?!

0 投票
4 回答
4294 浏览

unit-testing - Spring Test Framework 和基于注解的自动装配问题

我想对带有 Spring 测试框架的 DAO 使用两种不同的实现。

src.main.java

弹簧测试用例:

src.test.java.base:

这是错误:

原因:java.lang.IllegalStateException:bean 类 [jpadao.UserDAO] 的注解指定的 bean 名称“userDAO”与现有的、不兼容的同名和类 bean 定义冲突 [jpaadao.UserDAO]

我已经尝试通过使用限定符来覆盖自动装配,例如:

然后在测试用例中接线

但错误仍然存​​在。

两个问题:

  1. 如何使用基于注释的配置来解决这个问题?
  2. 如何在没有自动装配和注释的情况下运行测试
0 投票
18 回答
122149 浏览

java - JUnit 测试在 Eclipse 中通过但在 Maven Surefire 中失败

我已经使用 JUnit 4 和 spring-test 库编写了一些 JUnit 测试。当我在 Eclipse 中运行测试时,运行良好并通过。但是当我使用 Maven 运行它们时(在构建过程中),它们无法给出与 spring 相关的错误。我不确定是什么导致了这个问题,JUnit、Surefire 还是 Spring。这是我的测试代码、spring 配置和我从 Maven 获得的异常:

PersonServiceTest.java

个人服务-test.xml

Maven 中的异常

0 投票
3 回答
2807 浏览

java - 如何让 Spring testcontext 框架使用多个数据源?

我正在尝试使用 Spring TestContext 框架集成测试我的应用程序。我AbstractTransactionalJUnit4SpringContextTests像往常一样通过扩展来做到这一点。但是,我的应用程序具有三个不同的数据源(名称如 xDataSource、yDataSource、zdataSource),例如,当我尝试运行测试时,数据源的自动AbstractTransactionalJUnit4SpringContextTests装配不起作用,因为它会查找具有自动装配功能的数据源-按类型,但找到三个,所以它不知道该选择哪一个。

有没有办法让 Spring TestContext Framework 使用三个数据源?如果是这样的话; 如何?

0 投票
1 回答
1976 浏览

spring - 为什么我的 bean 为空?

我正在尝试学习如何使用 applicationContext。我的目标是在使用我的单元测试时将模拟数据存储库换成真实的。我不想明确地这样做,我想通过依赖注入来做到这一点。

所以在我把事情弄复杂之前作为一个简单的测试,我只是想从我的applicationContext.xml 中取出一个bean。根据我的阅读,这应该有效:

但我的 resultBean 始终为空。这是我的 applicationContext.xml,它位于 WebContent/WEB-INF 下:

那么为什么我的 resultBean 总是 null 呢?我做错了什么?

0 投票
3 回答
738 浏览

java - 使用 springframework 的不良 JUnit 测试具有脆弱的 Thread.sleep() 调用。怎么修?

我最近加入了一个有一些严重 JUnit 测试问题的小组。一个问题是 8 分钟的测试!测试有几个部分;每个人都会调用 org.springframework.context.ApplicationEventPublisher.publishEvent(),然后是不同时间的 Thread.sleep(),然后测试条件。

这种方法有几个明显的问题,Thread.sleep() 调用的时间很脆弱:

  • 在繁忙的机器上测试偶尔会失败;和

  • 当测试没有失败时,测试花费的时间太长了。

处理这些事件的池是否可用于测试,是否有调用以查看事件级联是否已停止?

0 投票
1 回答
2972 浏览

java - 如何让 @BeforeClass 在 Spring TestContext 加载之前运行?

对于使用 testNG 的程序员来说,这应该是小菜一碟。我有这种情况

但是我需要在@BeforeClass 之后加载弹簧上下文。II 提出了重写 AbstractTestNGSpringContextTests 方法:

并制定我的方法

但后来我得到:

引起:org.testng.TestNGException:org.springframework.test.context.testng.AbstractTestNGSpringContextTests.springTestContextPrepareTestInstance() 不允许依赖于受保护的 void org.springframework.test.context.testng.AbstractTestNGSpringContextTests.springTestContextBeforeTestClass() 抛出 java。语言异常

公开也无济于事。如果可以以工作方式完成,可以请任何人在这里提及 :-) 我知道我可以手动加载 testContext,但这不会那么花哨。

它是这样工作的,但是 TestContextManager 不可见,所以我不能在它上面调用 prepareTestInstance() 方法:

0 投票
2 回答
972 浏览

java - 为所有测试类设置自定义 TestExecutionListener,这样我就可以记录每个抛出的异常/断言的堆栈跟踪

嘿,我正在使用 SpringJUnit4ClassRunner。默认情况下,TestContextManager.afterTestMethod() 会非常简短地记录每个异常或断言(只是消息),如下所示:

testMethod = testDataDriven@DataDrivenAbstractTest, testException = [null]]

我想编写一个自定义的 TestExecutionListener 来记录我项目中任何测试引发的所有异常。我不想记住用@TestExecutionListeners 注释我的每个测试类。

我可以以某种方式在全球范围内做到这一点吗?我在正确的轨道上吗?

谢谢。