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

junit4 - 如何防止测试在 SuiteTest 之外运行

我有一组测试必须仅从 TestSuite 运行,而不能直接运行,因为它们需要在套件设置级别实例化的资源

所以我的测试套件是

我的测试是这样的

因此,当我启动套件时一切都很好,但是当我调用 maven 时,它尝试直接运行 IT_LiquidBaseTest 并失败。我仍然需要依赖注入来获取数据源

您是否知道如何防止 maven surefire 插件进行此操作但启用测试套件的运行

谢谢

0 投票
1 回答
4911 浏览

java - 每次单元测试后回滚

我使用 Spring、Hibernate 和 MySQL 开发应用程序。我为我的一张表创建了 DAO。现在,我想测试 DAO 的方法(保存、查找等)。问题是这些方法会影响数据库数据,所以我想在特定方法执行后回滚所有更改。我尝试通过设置defaultRollback=true来做到这一点,@TransactionConfiguration但它不起作用。下面我粘贴最重要的代码片段。有谁知道如何在每种方法之后强制回滚?

我在 MySQL 中的表使用 InnoDB 引擎。事实上,在测试执行后控制台包含这样的信息: INFO: Rolled back transaction after test execution for test context ...但是数据库中的更改被提交了。

用户DAOTest

休眠 (hibernate.cfg.xml)

弹簧配置(applicationContext.xml)

编辑

UsersDAO(它是通用的,但没关系)

0 投票
1 回答
84 浏览

testing - 如何为特定方法停用@Before?

我正在使用spring和junit在java中编写一个测试类(实际上我的类底部有“@RunWith(SpringJUnit4ClassRunner.class)”)。

有一个带有 @Before 注释的方法,我希望它不要在特定的测试方法之前运行(但不是其余的)。我怎样才能做到这一点?

谢谢

0 投票
1 回答
1981 浏览

java - JUnit、Spring (SpringJUnit4ClassRunner) 和 Spring 接线工作不正常(尝试从 Eclipse 和命令行 Maven 运行)?

我遇到了一个问题,即我试图通过 spring 配置连接的 bean 不起作用?在我的测试用例中进行检查期间,bean 访问器显示为 null(但我确实在日志中观察到 setter 实际上将其设置为有效值。真的可以使用一些帮助......

这是代码:


然后我试图用下面的配置来连接它

当我运行它时,我观察到 HistoryZipCompress 被实例化了 3 次不同的时间,这是在 HistoryZipCompress 上运行 getArchiveTypeName 的结果:

0 投票
1 回答
4035 浏览

java - 为什么我的测试不能从其父级继承其 ContextConfiguration 位置?

为了 DRY,我想在父类中定义我的 ContextConfiguration 并让我的所有测试类都继承它,如下所示:

父类:

儿童班:

根据ContextConfiguration文档,我应该能够继承父级的位置,但我无法让它工作。Spring 仍在默认位置 ( /org/my/ChildTest-context.xml) 中寻找文件,找不到时会 barfs 。我试过以下没有运气:

  • 使父类具体化
  • 向父类添加无操作测试
  • 将注入的成员也添加到父类
  • 以上组合

我在 spring-test 3.0.7 和 JUnit 4.8.2 上。

0 投票
3 回答
9795 浏览

jpa - 没有可用的事务性 EntityManager

我是 jpa 和 spring 世界的新手,我目前正在对一个简单的方法进行一些单元测试,但只有当我在单元测试模式下运行我的测试类时才会收到此错误消息:

但是,当我运行我的项目时,代码工作正常,它可以正确检索数据(不在单元测试模式下)。

请在下面找到我的单元测试将基于的方法:

我的单元测试如下:

有什么想法为什么我会收到 No transactional EntityManager available 错误吗?:(

提前致谢。

0 投票
1 回答
9601 浏览

spring-mvc - java.lang.NullPointerException 当我运行我的单元测试 - 模拟

我有一个spring mvc应用程序并使用mockito进行单元测试。运行单元测试时,我不断收到空指针异常。:(

请在下面找到我的单元测试将基于的方法:

请在我的单元测试下面找到:

当我运行上面的单元测试时,请在下面找到堆栈跟踪错误消息:

基本上下面显示的第 99 行根据堆栈跟踪返回 null:

任何想法为什么我在这一行上得到空指针?但是当我运行我的应用程序时它工作正常并且failLog消息显示在我的页面上。

提前致谢。

0 投票
1 回答
997 浏览

java - 用 Spring 测试 Dao

我在使用 spring junit runner 运行一些测试时遇到了一些问题。

我正在为 spring 使用 Java 配置,所以我似乎找不到适合我的示例。

我要做的就是编写一个 junit 测试,我可以在其中使用我的一个 dao 类,并让它与 hibernate 和所有东西一起工作,但为此我需要将它加载到真正的 spring 上下文中。

我试过这样写我的测试类:

但它不能在nodeDao. 它说NoSuchBeanDefinitionException

如果我尝试自动装配NodeDao,那么它会运行,但是将它作为弹簧测试运行的唯一一点是,我可以测试真正的 spring-configured NodeDao

我也试过没有组件扫描,有组件扫描但没有bean声明和其他一些方法,但我无法让它工作。

0 投票
0 回答
527 浏览

spring - spring junit 测试套件中的 IBM WebSphere 等效工作管理器

我们有一个部署在 WAS 服务器上的应用程序。我们使用 WAS 工作管理器进行多线程处理。到目前为止,我们没有测试多线程,我们只是使用绑定在 Spring 上下文中的类 com.ibm.websphere.asynchbeans.WorkManager 的模拟。

现在我必须为此编写测试用例。这些是集成测试。是否有任何现成的 IBM 工作管理器实现,我可以使用它来提供相同的环境/功能。我发现可以使用 commonj 工作管理器的实现,但不是 IBM 的。

谢谢苏拉布

0 投票
4 回答
7057 浏览

ehcache - 春季测试:同名“myCacheManager”的另一个 CacheManager 已存在于同一 VM 中

在将其标记为重复之前,请先阅读问题。我已经阅读了有关此异常的所有内容,但它并没有为我解决问题。而且我确实得到了一个稍微不同的异常,例如Another CacheManager with same name 'myCacheManager' already exists而不是Another unnamed CacheManager already exists.

弹簧配置:

ehcache

问题是我有 1 个(将来会更多)测试安全性的测试类。这些类还加载一个 SecurityContext.xml

所以大多数测试类都有这个注释:

但是导致问题的类:

似乎由于位置不同,因此再次加载了上下文,但 ehcacheManager 在之前的测试中仍然处于活动状态。

注意:这仅在运行多个测试时发生(例如,像 clean + build)。单独运行这个测试类可以很好地工作。

什么问题?我该如何解决?