在Spring 3中创建单一测试
我开始测试应用程序,我想创建几个测试来学习Spring中的Mockito。 我一直在阅读一些信息,但我有一些普遍的疑问,我想问。
- 我见过Mockito测试,他们用类: @RunWith(MockitoJUnitRunner.class)注释类的测试,而在Spring文档中使用@RunWith(SpringJUnit4ClassRunner.class) 。 我不知道它们之间有什么区别,我应该将哪一个用于测试使用Mockito的Spring应用程序。
- 由于我还没有看到任何有测试的实际应用程序,我想知道开发人员会做的典型测试。 例如,在用户的典型CRUD应用程序(用户可以创建,更新……)中,任何人都可以进行常规测试。
谢谢。
@RunWith(MockitoJUnitRunner.class)
通过此声明,您可以编写unit testing 。 unit testing正在运行一个模拟所有依赖项的类。 通常,您将在测试用例中注入如此声明的模拟依赖项:
@Mock private YourDependency yourDependencyMock;
@RunWith(SpringJUnit4ClassRunner.class)
Spring runner用于集成测试 ( 组件测试 ?)在这种类型的测试中,你正在运行一大堆类,换句话说,你正在测试一个具有真正依赖性的类(用真实服务测试控制器,DAO,在 -内存数据库等)
您应该在应用程序中同时拥有这两个类别。 虽然建议有更多的unit testing和少量的烟雾整合测试,但我经常发现自己更有信心只编写集成测试。
至于你的第二个问题,你应该:
-
单独测试每个类(控制器,服务,DAO)与模拟所有其他类
-
整个单个CRUD操作的集成测试 。 例如,创建一个运行控制器,服务,DAO和内存数据库的用户。