使用本地Spring Testconfiguration进行测试、模拟和验证
我在玩SpringBoot2和单元测试 我已经找到了一个非常方便的测试类和测试配置的解决方案(对于简单的单元测试,它不会将所有bean放到上下文中) 但是现在我有一个问题,关于如何在每个测试中验证对mock的调用?比如使用本地Spring Testconfiguration进行测试、模拟和验证,spring,unit-testing,mocking,spring-test,Spring,Unit Testing,Mocking,Spring Test,我在玩SpringBoot2和单元测试 我已经找到了一个非常方便的测试类和测试配置的解决方案(对于简单的单元测试,它不会将所有bean放到上下文中) 但是现在我有一个问题,关于如何在每个测试中验证对mock的调用?比如verify(mockeddepenndcy).someMethod() 或者所描述的解决方案仅仅是对没有任何依赖关系的孤立类的真正孤立测试的一个好解决方案吗?为什么需要Spring呢?创建类,模仿自己并进行测试。您的应用程序使用Spring并不意味着您必须在任何地方都使用它……如
verify(mockeddepenndcy).someMethod()代码>
或者所描述的解决方案仅仅是对没有任何依赖关系的孤立类的真正孤立测试的一个好解决方案吗?为什么需要Spring呢?创建类,模仿自己并进行测试。您的应用程序使用Spring并不意味着您必须在任何地方都使用它……如果您需要在每次测试后执行某些操作,请尝试在@之后
(或者@之前
如果您需要在方法之前执行操作)
@RunWith(SpringRunner.class)
@SpringBootTest(classes = SomeServiceClassTestConfiguration.class)
@TestPropertySource(locations = "classpath:application-test.properties")
public class SomeServiceClassTest {
@Configuration
static class SomeServiceClassTestConfiguration {
@Bean
public SomeServiceClass someServiceclass() {
return new SomeServiceClass(someDependency());
}
@Bean
public SomeDependency someDependency() {
return mock(SomeDependency.class);
}
}
@Test
public void someTests() {
// given
...
// when
...
//then
...
}
}