[英]Spring MVC Testing without Mocking
好的,我来自Rails,要使其正常工作有些困难。
正确知道这是我从Spring框架中了解的内容(如果我错了,请纠正我):
我正在使用Tomcat。 因此,基本上,它的工作是去到web.xml之后,然后从那里检查所有配置文件以进行初始化并自动连接Bean等。
在我的示例中,我在web.xml上将上下文配置位置为application-config.xml
事实证明application-config.xml还有其他配置文件,这些文件将处理以下问题:
休眠:
<util:properties id="hibernatePropertiesConfigurer" location="classpath:hibernate.properties"/>
JSon Converter:
<import resource="classpath:json-converter.xml"/>
管理者( @Component
)扫描程序:
<import resource="classpath:scanner-config.xml"/>
其中。 换句话说,这些工作正常,Web服务器启动,经理( @Components
)是@Controllers
@Autowired
, @Controllers
可以调用它们,将对象持久存储在数据库中,等等。
现在,我要测试,即运行JUnit测试。 我确实找到了许多有关如何模拟这些层(管理器,控制器)的示例,但我想尝试一下真正的东西:
@Controller
@Controller
对象 @Controller
具有@Component
或@Bean
的真实@Autowired
(非@Bean
版本) @Component
将保留一个@Entity
@Component
的@Autowired
实例,并查询数据库以确认发生了持久性。 Spring,JUnit测试完全有可能吗?
如果要像这样验证整个堆栈的行为,则它不再是单元测试,而是集成测试。
如果您使用的是Maven,则可以在pre-integration-test
阶段使用Maven Jetty插件之类的项目将项目部署到嵌入式容器中。 然后在测试中,对本地主机上的服务器进行HTTP调用,并验证您是否获得了预期的响应。 然后,在post-integration-test
阶段,关闭Jetty服务器。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.