Java 在spring boot中使用多个依赖服务时,如何测试服务层
我正在用SpringBoot编写一些测试。我想写所有类型的测试。例如单元测试、集成测试、组件测试、微服务测试。我怎么做Java 在spring boot中使用多个依赖服务时,如何测试服务层,java,spring-boot,integration-testing,Java,Spring Boot,Integration Testing,我正在用SpringBoot编写一些测试。我想写所有类型的测试。例如单元测试、集成测试、组件测试、微服务测试。我怎么做 我编写了单元测试,但我不能编写其他测试。当我想编写集成测试时,我遇到了一些问题。依赖注入的问题。我有一个服务类,服务类包含多个dependenciesOther服务,这些其他服务包含其他服务等等。如何测试服务层?我需要模拟还是使用真正的bean?如果您正在进行单元测试,那么您需要模拟您正在测试的类范围之外的任何依赖项。 对于集成测试,您需要自动关联依赖项并创建正在测试的服务。
我编写了单元测试,但我不能编写其他测试。当我想编写集成测试时,我遇到了一些问题。依赖注入的问题。我有一个服务类,服务类包含多个dependenciesOther服务,这些其他服务包含其他服务等等。如何测试服务层?我需要模拟还是使用真正的bean?如果您正在进行单元测试,那么您需要模拟您正在测试的类范围之外的任何依赖项。 对于集成测试,您需要自动关联依赖项并创建正在测试的服务。 假设您想测试需要存储库类运行的服务类,您可以这样做 这是您要测试的依赖于存储库的服务
@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))
}
}
如果某个服务中会有另一个服务,我是否应该创建另一个服务的实例并将其注入到某个服务类中,对吗?如果某个服务依赖于另一个服务,你可以用我理解的相同方法来做,我会尝试。谢谢。如果有帮助的话,我会做的