问题标签 [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.
spring - Spring+TestNG:未扫描包的注释
我有一个基于AbstractTransactionalTestNGSpringContextTests
. 我收到一个错误,抱怨找不到适合自动布线的 bean。
道:
我在 config.xml 中有以下内容: < context:component-scan base-package="com.blah" />
我是否错过了启动组件扫描的步骤?
hsqldb - Spring Test:无法从 import.sql 文件将十六进制值插入 hsqldb
我正在使用 spring 和 hibernate 执行 JUnit 测试。当我在我的 PC 上使用 MySql 数据库时,它工作正常。为了在任何环境中启动此测试,我设置了一个虚拟数据库:hsqldb。我从 import.sql 文件中插入数据。这是我的配置:
和persistence.xml:
因此,当我启动测试类时,数据(在 import.sql 文件中)被插入数据库并运行测试。我的问题是我有一些未插入数据库的十六进制值,我不知道为什么。这是 import.sql 中十六进制数据的示例:
此数据在我的 MySql 数据库中定义为 LONGBLOB,我认为 HSQLDB 不支持此类型。
我如何插入这些数据以便从我的测试类中获取它?
非常感谢你!金黄色葡萄球菌
spring - 使用 SimpleJdbcTestUtils.executeSqlScript() 时 HSQLDB 触发语句错误
我目前正在尝试加载一个 sql 脚本来创建一个 HSQL 数据库。这是通过使用以下代码完成的:
该脚本包含触发器的创建语句:
使用此代码运行测试时,会出现以下错误:
我正在使用 Spring 3.0.5 和 HSQLDB(驱动程序,...)版本是 1.8.0.10。
有没有人遇到过这个问题或知道如何解决这个问题?
(我还尝试将所有内容放在一行上,将 sql 放在单独的文件中,删除分号,...)
任何帮助都感激不尽。提前谢谢!
温迪。
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) 执行所有数据库操作,那么它将起作用,因为内部如何确定事务的范围。我的选择是:
弄清楚如何运行 SimpleJdbcTemplate.update 以及我在同一事务中测试的后续实际代码。我想我可以做到这一点,但到目前为止我的努力是徒劳的。
通过 SessionFactory 设置我所有的测试数据。因此,我不会通过 JDBC 直接执行 SQL 脚本,而是填充模型对象并通过 Hibernate DAO 持久化它们。
我在正确的轨道上吗?谁能提供更多指导?
java - 无法使用 Spring 进行 JUnit 测试
我的测试定义如下:
我的意图是运行这个测试并失败!
我测试的spring配置文件位于:
我的spring配置文件内容如下:
当我运行测试时,出现以下异常:
我正在使用具有以下春季版本集的 Maven:
对于这方面的任何帮助,我将不胜感激。
编辑:
有人建议也添加 spring-core 依赖项。虽然我怀疑它是否会有所作为,但我确实添加了它,这就是异常的样子:
java - Spring集成测试-配置中的事务声明似乎破坏了测试
我正在玩 Spring MVC + Hibernate + MySQL“Hello World”应用程序,目前正在尝试使用 jUnit 在 Spring MVC 控制器上运行以下集成测试。
但是,每次我这样做时,都会出现以下异常:
以前我没有实现任何真正的数据访问并且测试通过了,但是现在我已经添加了我的 DAO 的 Hibernate 实现以及 Spring 事务管理,我得到了这个错误。以下是我的小程序上下文配置 xml 的相关部分:
如果我<tx:annotation-driven />
从配置中删除,则不会发生上述异常,但是测试失败,因为处理程序中发生的数据访问调用不再具有打开的事务。该应用程序在测试之外运行良好。有人对问题所在有任何想法吗?
java - 在 testng 的 @BeforeTest 中访问 spring 上下文
我想在我的@BeforeTest
方法中将一些 web 范围注册到 spring 上下文中。但事实证明,春天的背景仍然null
在那个时候。
不过,如果我更改为@BeforeMethod
. 我想知道如何访问 中的上下文@BeforeTest
,因为我不希望每个测试方法都重复范围注册代码。
下面是我的代码片段。
这是运行测试时的错误消息:
junit - 显然是 Mockito NotAMockException
我正在使用 Spring Test 框架和 Junit。我有一个用于测试用例的 spring 上下文文件:
在 restTestContext.xml 中,我创建了一个 AWSMailService 类型的 bean(实际上是一个模拟):
在测试中,我试图验证在 mailService 模拟上调用了 sendEmail() 方法,但是我得到了一个 NotAMockException 虽然在对象上调用 toString() 告诉我它是一个模拟:
有没有人有任何想法可能导致这种情况?
谢谢
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
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: