在Spring 3中创建单一测试

时间:2011-04-07 15:55:35

标签: java unit-testing spring mockito spring-3

我开始测试应用程序,我想创建几个测试来学习Spring中的Mockito。我一直在阅读一些信息,但我有一些普遍的疑虑,我想问。

  1. 我见过Mockito测试,他们用以下方法注释类的测试: @RunWith(MockitoJUnitRunner.class),而在Spring文档中使用 @RunWith(SpringJUnit4ClassRunner.class) )即可。我不知道它们之间有什么区别,我应该使用哪个应用程序来测试使用Mockito的Spring应用程序。
  2. 由于我还没有看到任何有测试的实际应用程序,我想知道开发人员会做的典型测试。例如,在用户的典型CRUD应用程序中(用户可以创建,更新......)任何人都可以进行常规测试。
  3. 感谢。

1 个答案:

答案 0 :(得分:14)

@RunWith(MockitoJUnitRunner.class)

通过此声明,您可以编写单元测试。单元测试正在运行一个模拟所有依赖项的类。通常,您将在测试用例中注入如此声明的模拟依赖项:

@Mock
private YourDependency yourDependencyMock;

@RunWith(SpringJUnit4ClassRunner.class)

Spring runner适用于集成测试组件测试?)在这种类型的测试中,您正在练习一大堆类,换句话说,您正在测试一个具有实际依赖性的单个类(使用实际服务,DAO,内存数据库等测试控制器)

您应该在应用程序中同时拥有这两个类别。虽然建议有更多的单元测试和少量的烟雾整合测试,但我经常发现自己更有信心只编写集成测试。

至于你的第二个问题,你应该:

    每个类(控制器,服务,DAO)的
  • 单元测试与模拟所有其他类分开

  • 集成测试用于整个单个CRUD操作。例如,创建一个运行控制器,服务,DAO和内存数据库的用户。