我正在研究Spring应用程序(Spring 3.0)和以下分层体系结构,即Controller -> Service -> DAO layers
。Junit测试Spring服务和DAO层
我想写服务和DAO层的单元测试用例,使用Junit。
我查了春季官方网站,也尝试了很多其他网站,但无法弄清楚一个简单而简单的方法。
任何人都可以提供一些有用的资源吗?
编辑:
貌似Mockito是不错的选择。在Spring中使用它的任何好链接。
谢谢Alex建议。
我正在研究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