Junit测试Spring服务和DAO层
问题描述:
我正在研究Spring应用程序(Spring 3.0)和以下分层体系结构,即Controller -> Service -> DAO layers
。Junit测试Spring服务和DAO层
我想写服务和DAO层的单元测试用例,使用Junit。
我查了春季官方网站,也尝试了很多其他网站,但无法弄清楚一个简单而简单的方法。
任何人都可以提供一些有用的资源吗?
编辑:
貌似Mockito是不错的选择。在Spring中使用它的任何好链接。
谢谢Alex建议。
答
不知道很多有关的资源,但它并不难,如果你有你的DAO +弹簧设定很好做。您需要以下内容:
-
表示JUNIT依赖关系。与Maven,这样的事情:
<dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.8.2</version> </dependency>
-
测试类,其中放置的src/test/java下里面:
@TransactionConfiguration(defaultRollback = true) @ContextConfiguration({ "classpath:test-spring-context.xml" }) @Transactional @RunWith(SpringJUnit4ClassRunner.class) public class SomeTests { // ... }
-
为您的春季设置上下文文件中引用你的DAO数据源放在里面SRC /测试/资源。 某处在您的测试弹簧的context.xml:
<import resource="datasource-test.xml" />
现在比如在Eclipse中,您可以运行该项目的JUnit测试。
需要更多的细节?此解决方案是否适用?
小心。链接“Mocking服务层”现在导致恶意页面。 – Cenobyte321
@ Cenobyte321谢谢,链接已删除。 – xyz
如果您使用休眠和弹簧启动,为什么不在开始测试时将内存数据库中的H2配置为已初始化?然后在你的测试类上使用Annotation SpringBootTest AutoConfigureTestEntityManager Transactional,只需Autowired你的dao,你就可以真正地测试它,而不会模拟。更好地,你可以使用MockMvc并从控制器测试你的整个webservice(所以我想你控制器使用服务,使用dao) – amdev