考虑一个方法签名,如:
public String myFunction(String abc);
Run Code Online (Sandbox Code Playgroud)
Mockito可以帮助返回方法收到的相同字符串吗?
我正在尝试为服务编写测试.但我嘲笑repository依赖是不成功的.其他非存储库依赖项已成功模拟.存储库实例始终是实际实现,而不是模拟实例.
我正在使用Spring Boot和Spring Data JPA来构建应用程序.Mockito用于嘲笑.我设法将问题提炼成一个测试项目.完整的测试项目在GitHub上.以下是测试项目的代码片段; 以下是PersonServiceTest班级.
更新1: before()代码应该检查personRepository不personService
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(App.class)
@WebAppConfiguration
@TestExecutionListeners({ServletTestExecutionListener.class, DirtiesContextBeforeModesTestExecutionListener.class, DependencyInjectionTestExecutionListener.class, DirtiesContextTestExecutionListener.class, TransactionalTestExecutionListener.class, SqlScriptsTestExecutionListener.class})
@Transactional
@ActiveProfiles({"mock-some-bean", "mock-person-repository"})
public class PersonServiceTest {
@Inject
private SomeBean someBean;
@Inject
private PersonRepository personRepository;
@Inject
private PersonService personService;
@Before
public void before() {
assertThat(mockingDetails(someBean).isMock(), is(true));
assertThat(mockingDetails(personRepository).isMock(), is(true));
}
@Test
public void doSomething() throws Exception { ... }
}
Run Code Online (Sandbox Code Playgroud)
测试类使用两个配置文件:mock-some-bean和mock-person-repository.基本上,我使用配置文件来确定应该嘲笑什么.在进行任何测试之前,我断言someBean和personService被模拟的实例.someBean被嘲笑但personService总是失败.以下代码是TestConfig …