我正在Spring Boot中编写一些测试。我想编写所有类型的测试。如单元测试,集成测试,组件测试,微服务测试。我该怎么办?
我写了单元测试,但是我不能写其他测试。当我想编写集成测试时,我遇到了一些问题。依赖注入的问题。我有一个服务类,该服务类包含多个依赖项(其他服务,这些其他服务包含其他服务,依此类推)。如何测试服务层?我需要模拟还是使用真正的bean?
答案 0 :(得分:0)
如果要进行单元测试,则需要模拟要测试的类范围之外的任何依赖关系。 对于集成测试,您需要自动关联依赖关系并创建要测试的服务。 假设您要测试需要存储库类才能运行的服务类,可以通过这种方式进行 这是您要测试的服务,具体取决于存储库
@Service
public class SomeService {
public final SomeRepository someRepository
public SomeService(SomeRepository someRepository){
this.someRepository = someRepository;
}
public Object someMethod (){ return someRepository.getSomething()}
}
这是您如何在集成中对其进行测试
@SpringBootTest(classes = Application.class)
public class SomeServiceTest(){
@Autowired
SomeRepository someRepository;
SomeService someService;
@Before
public void setup(){
someService = new SomeService(someRepository);
}
@Test
public void someMethodTest(){
Assert.assertTrue(someService.someMethod().equals(anObject))
}
}