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

java - @Test 后回滚事务

首先,我在 StackOverflow 上找到了很多关于此的线程,但没有一个真正帮助我,很抱歉问可能重复的问题。

我正在使用 spring-test 运行 JUnit 测试,我的代码如下所示

我的问题是我希望我的测试不会影响其他测试。所以我想为每个测试创建类似回滚的东西。我已经为此搜索了很多,但到目前为止我什么也没找到。我为此使用 Hibernate 和 MySql

0 投票
1 回答
2228 浏览

mysql - Spring test DBUnit:即使在最简单的测试中,表比较也会失败

我使用 Spring test DBUnit 来测试我的 DB Service 和 Hibernate。我写了一个最简单的测试:

它失败了!为什么?在我修改表之前它确实有效(删除了一些字段,添加了其他字段,重新分配了主键)似乎 DBunit 比较了来自不同记录的 companyName 列dumbDataSample_DBAccount.xml

有任何想法吗?这是痕迹

这是表的脚本:

这是我的实体类:

休眠配置:

我使用注释所以没有 persistence.xml 文件

这是测试上下文

0 投票
2 回答
25666 浏览

java - JUnit - 之前的方法

我需要在每个 JUnit 测试方法之前执行一些代码。为了执行这段代码,我使用 SpringTest 类 AbstractTestExecutionListener 及其子 TransactionContextTestExecutionListener。

这是代码:

我的 JUnit 类看起来像:

问题是 beforeTestMethod 方法只在第一次执行测试方法之前被调用。它不会在所有其余的之前调用。

是不是配置有问题?任何的想法?

谢谢

0 投票
1 回答
2051 浏览

integration-testing - Spring AbstractTransactionalJUnit4SpringContextTests 和 simpleJdbcTemplate

我正在尝试使用AbstractTransactionalJUnit4SpringContextTests. 我想使用executeSQLScript这个类的方法。

但是,当executeSQLScript调用方法时,它会抛出,NullPointerException因为simpleJdbcTemplate类的参数AbstractTransactionalJUnit4SpringContextTests没有被初始化。

我的代码如下所示:

在此先感谢您的帮助!

0 投票
3 回答
21939 浏览

java - org.springframework.test 也无法在存在 maven 依赖项的情况下解决

我在尝试为我的 Spring 应用程序构建测试套件时遇到问题。我是 Maven 新手,我找不到问题所在。我已添加到我的 pom.xml

但我仍然从 Eclipse 得到错误:The import org.springframework.test cannot be resolved.

在这个讨论之后(http://appfuse.547863.n4.nabble.com/spring-test-package-not-found-td1596479.html),我尝试添加<scope>provided<scope>但没有成功。

这是我的完整pom.xml

然后我尝试运行mvn dependency:tree,但我看不出有什么奇怪的:

任何帮助将不胜感激,在此先感谢。

0 投票
2 回答
11588 浏览

spring - 使用 spring-test-mvc jsonpath 进行测试返回 null

我正在使用 Spring 的“spring-test-mvc”库来测试 Web 控制器。我有一个非常简单的控制器,它返回一个 JSON 数组。然后在我的测试中我有:

上面的测试返回:

为了快速检查我实际得到的结果,我运行了以下测试:

它在正文中返回正确的 JSON 数组MockHttpServletResponse

我不确定为什么jsonPath无法fName在 JSON 数组中看到。

0 投票
1 回答
942 浏览

java - 以编程方式访问应用程序上下文和上下文位置

我有一些测试(我没有编写它们,我正在维护它们)使用 spring ContextConfiguration 注释来提供应用程序上下文:

无论如何,有几个问题。我对不指定 file:/ 或 classpath:/ 的 spring 自定义上下文位置不太熟悉。这是什么意思?此测试类路径上有很多具有该名称的资源。他们都加载了吗?如果没有,Spring 怎么知道要加载哪个?

其次,有没有办法以编程方式访问以这种方式连接的弹簧上下文?

即是否有一个静态 Spring Class 或 ThreadLocal 变量可以让我访问当前上下文?

在此先感谢您的帮助。

0 投票
1 回答
1549 浏览

spring - 测试 JPA Spring 3.1 的最佳方法

我为我的 Spring 3.1.1/JPA/Hibernate 4 Web 应用程序编写了几个 JPA 存储库、服务和支持类。但是,我真的很想为它写一些单元和集成测试(我知道,你应该先写这些)。我使用的是 JavaConfig 而不是 XML,所以我想知道最好的测试方法。这是我要解决的特定问题:

我有一个 @Configuration,它声明了 DataSource、JpaTransactionManager、LocalContainerEntityManagerFactoryBean 和我所有的存储库。显然我不想为集成测试开始所有这些,所以我想我可以使用 EmbeddedDatabase 和 H2 创建一个内存数据库,填充值,然后使用我的存储库来对付它。但是,我看到的文档并没有帮助我把它放在一起。我有这个:

但是 menuRepository 没有被实例化,所以我尝试创建我的 @Configuration 的测试版本

我的 test-applicationContext.xml

我的 test-application.properties:

但这需要我创建上面提到的所有数据源等。似乎我只是在为这个复制所有的支持 bean。

有没有办法让存储库和嵌入式数据库与我的测试隔离而没有所有其他依赖项?

0 投票
1 回答
981 浏览

java - 将 Spring 3.1 与 RequestMappingHandlerAdapter 一起使用时出现默认构造函数错误

我有一个自定义参数解析器SecurityRequestParametersArgumentResolver,它与 Spring 3.0.7 一起使用,但在 Spring 3.1.2 中失败。堆栈跟踪和测试驱动程序代码如下所示。
当我查看堆栈跟踪时,似乎SecurityRequestParametersArgumentResolver.resolve( )没有被调用。相反,我HandlerMethodArgumentResolverComposite.resolve在堆栈跟踪中看到。

建议?

我已经更新了要使用的 java 代码HandlerMethodArgumentResolver(它AnnotationMethodHandlerAdapter来自 3.0.7),但是在进行运行时集成测试时会出现此堆栈跟踪:

SecuritySystemTestStartUp 中的测试驱动程序代码使用@ContextConfiguration 进行注释:

参数解析器(与 Spring 3.0.7 兼容)用于 postProcessAfterInitialization。参数解析器的代码摘录如下所示。

公共类 AnnotationMethodHandlerBeanPostProcessor 扩展 InstantiationAwareBeanPostProcessorAdapter {

}

并在 Spring Configuration 中指定为 ...

参数解析器的流程如下:

@Component public class SecurityRequestParametersArgumentResolver implements HandlerMethodArgumentResolver { @Autowired // 隐式自动装配(不在 xml 中) private RequestMappingHandlerAdapter requestMappingHandlerAdapter;

}

最后......这是Spring配置中的注释驱动标签

0 投票
2 回答
1613 浏览

java - 使用 Spring 测试创建测试套件

在我的 Spring-Maven 项目中,我的单元测试继承自一个基类:

然后一个典型的单元测试看起来像:

这种结构允许我:

  • 将单个测试作为 Junit 测试运行(来自我的 Eclipse IDE)。
  • 使用 Maven 构建运行我的所有测试。

如何从我的 Eclipse IDE 运行我的所有测试?我知道我应该创建一个测试套件,但由于某种原因,我似乎无法弄清楚如何使用这种结构。

顺便说一句 - 我正在使用 Junit 4.9