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

spring - Spring+TestNG:未扫描包的注释

我有一个基于AbstractTransactionalTestNGSpringContextTests. 我收到一个错误,抱怨找不到适合自动布线的 bean。

道:

我在 config.xml 中有以下内容: < context:component-scan base-package="com.blah" />

我是否错过了启动组件扫描的步骤?

0 投票
1 回答
1504 浏览

hsqldb - Spring Test:无法从 import.sql 文件将十六进制值插入 hsqldb

我正在使用 spring 和 hibernate 执行 JUnit 测试。当我在我的 PC 上使用 MySql 数据库时,它工作正常。为了在任何环境中启动此测试,我设置了一个虚拟数据库:hsqldb。我从 import.sql 文件中插入数据。这是我的配置:

和persistence.xml:

因此,当我启动测试类时,数据(在 import.sql 文件中)被插入数据库并运行测试。我的问题是我有一些未插入数据库的十六进制值,我不知道为什么。这是 import.sql 中十六进制数据的示例:

此数据在我的 MySql 数据库中定义为 LONGBLOB,我认为 HSQLDB 不支持此类型。

我如何插入这些数据以便从我的测试类中获取它?

非常感谢你!金黄色葡萄球菌

0 投票
3 回答
2920 浏览

spring - 使用 SimpleJdbcTestUtils.executeSqlScript() 时 HSQLDB 触发语句错误

我目前正在尝试加载一个 sql 脚本来创建一个 HSQL 数据库。这是通过使用以下代码完成的:

该脚本包含触发器的创建语句:

使用此代码运行测试时,会出现以下错误:

我正在使用 Spring 3.0.5 和 HSQLDB(驱动程序,...)版本是 1.8.0.10。

有没有人遇到过这个问题或知道如何解决这个问题?

(我还尝试将所有内容放在一行上,将 sql 放在单独的文件中,删除分号,...)

任何帮助都感激不尽。提前谢谢!

温迪。

0 投票
2 回答
5048 浏览

java - 使用 Spring Test 执行 SQL 脚本正在提交更改

我正在尝试使用 Spring 在我的 JUnit 测试中执行 SQL 脚本。该脚本用于为测试设置数据。但是,当脚本运行时,脚本中的 INSERT 将在每次测试后提交。Spring 文档说不要期望使用 DDL 进行回滚,但我的脚本中的所有内容都是 DML。它只包含 INSERT 语句并获取最后一个插入 ID (SET @blah = LAST_INSERT_ID())。

我配置错了吗?我正在对 MySQL 数据库使用它。我们的配置如下:

这是我根据一些研究认为正在发生的事情。第一次调用 executeSqlScript 在单独的事务中运行。Spring 的 SimpleJdbcTemplate.update 方法由 executeSqlScript 调用。因为这是从连接池获得的 JDBC 连接的范围,所以我不能保证在后续访问数据库时获得相同的连接,因此不能保证在同一个事务中运行。

如果我要通过 TransactionManager 或 (Hibernate Session Factory) 执行所有数据库操作,那么它将起作用,因为内部如何确定事务的范围。我的选择是:

  1. 弄清楚如何运行 SimpleJdbcTemplate.update 以及我在同一事务中测试的后续实际代码。我想我可以做到这一点,但到目前为止我的努力是徒劳的。

  2. 通过 SessionFactory 设置我所有的测试数据。因此,我不会通过 JDBC 直接执行 SQL 脚本,而是填充模型对象并通过 Hibernate DAO 持久化它们。

我在正确的轨道上吗?谁能提供更多指导?

0 投票
1 回答
37670 浏览

java - 无法使用 Spring 进行 JUnit 测试

我的测试定义如下:

我的意图是运行这个测试并失败!

我测试的spring配置文件位于:

我的spring配置文件内容如下:

当我运行测试时,出现以下异常:

我正在使用具有以下春季版本集的 Maven:

对于这方面的任何帮助,我将不胜感激。

编辑:

有人建议也添加 spring-core 依赖项。虽然我怀疑它是否会有所作为,但我确实添加了它,这就是异常的样子:

0 投票
2 回答
625 浏览

java - Spring集成测试-配置中的事务声明似乎破坏了测试

我正在玩 Spring MVC + Hibernate + MySQL“Hello World”应用程序,目前正在尝试使用 jUnit 在 Spring MVC 控制器上运行以下集成测试。

但是,每次我这样做时,都会出现以下异常:

以前我没有实现任何真正的数据访问并且测试通过了,但是现在我已经添加了我的 DAO 的 Hibernate 实现以及 Spring 事务管理,我得到了这个错误。以下是我的小程序上下文配置 xml 的相关部分:

如果我<tx:annotation-driven />从配置中删除,则不会发生上述异常,但是测试失败,因为处理程序中发生的数据访问调用不再具有打开的事务。该应用程序在测试之外运行良好。有人对问题所在有任何想法吗?

0 投票
2 回答
4750 浏览

java - 在 testng 的 @BeforeTest 中访问 spring 上下文

我想在我的@BeforeTest方法中将一些 web 范围注册到 spring 上下文中。但事实证明,春天的背景仍然null在那个时候。

不过,如果我更改为@BeforeMethod. 我想知道如何访问 中的上下文@BeforeTest,因为我不希望每个测试方法都重复范围注册代码。

下面是我的代码片段。

这是运行测试时的错误消息:

0 投票
3 回答
2069 浏览

junit - 显然是 Mockito NotAMockException

我正在使用 Spring Test 框架和 Junit。我有一个用于测试用例的 spring 上下文文件:

在 restTestContext.xml 中,我创建了一个 AWSMailService 类型的 bean(实际上是一个模拟):

在测试中,我试图验证在 mailService 模拟上调用了 sendEmail() 方法,但是我得到了一个 NotAMockException 虽然在对象上调用 toString() 告诉我它是一个模拟:

有没有人有任何想法可能导致这种情况?

谢谢

0 投票
4 回答
25928 浏览

spring - 使用 Spring Junit 测试自动装配失败

为我的 spring 应用程序编写 Junit 测试。因为我是新手,所以我尝试从为我知道有效的 DAO 类编写单元测试开始(在 JBoss 中运行它)。但是,我无法让它在 Eclipse 中作为单元测试工作。我不断收到“创建 bean 时出错...无法自动装配字段:NoSuchBeanDefinition”

我在 StackOverflow 和其他网站上看到了与此类似的错误,它总是以语法错误或试图自动装配接口的实现而不是接口等而告终。我的代码没有看到任何这些错误。

我确实从项目附带的 Spring 配置中单独下载了 Spring-test.jar。然而,两者都来自 Spring 2.5,所以我认为这不应该是一个问题:/

Eclipse 与 JUnit 4.8 捆绑在一起,而 Spring Unit Test 无法使用它,因此我将 JUnit 降级为使用 4.4

需要考虑的一件事...如果您查看我的单元测试的代码,您会注意到我自动装配了两个字段:一个 SimpleJdbcTemplate 在我要测试的查询服务中。好吧,如果我删除 DrugDao 和对它的所有引用,那么 SimpleJdbcQuery 自动连接就好了。

这是供您查看的堆栈跟踪:

这是接口和实现:

DrugDao.java

SpringJdbcDrugQuery.java

DrugDaoTest2.java (最初位于单独的源文件夹中,然后在同一文件夹中尝试)

common-test.xml

0 投票
1 回答
23366 浏览

spring - 使用 spring-test-mvc 对 REST 控制器进行单元测试

我已将我的 Spring 依赖项升级到 Spring 3.1.1.RELEASE,并且我正在尝试使用spring-test-mvc对一个简单的控制器进行单元测试。我一直在关注Spring REST Controller Test with spring-test-mvc framework中使用的技术,因为它似乎对那个人有用,但到目前为止我还没有成功。我认为我的测试上下文文件中缺少一些关键配置。

我没有错误。我知道它不起作用的原因是因为Hello World永远不会被打印(请参阅控制器)。我在这里想念什么?

控制器:

测试类:

休息APITestContext.xml: