【发布时间】:2021-11-29 13:12:11
【问题描述】:
我有两个服务 ServiceOne.class 和 ServiceTwo.class。 我试图模拟 ServiceTwo,但没有在线解决方案有效,并且在 ServiceOne.class 的测试中,尽管明确提及,但它表现得好像没有得到任何结果。
我知道有很多类似的解决方案,但没有一个解决方案适合我。
methodTest 是我应该测试的 ServiceOne.class 中的方法。
@SpringBootTest
class ServiceOneTest {
@MockBean
private Repo1 repo1;
@MockBean
private Repo2 repo2;
@MockBean
private Repo3 repo3;
@MockBean
private Repo4 repo4;
@MockBean
private Repo5 repo5;
@MockBean
private Repo6 repo6;
@MockBean
private Repo7 repo7;
@MockBean
private Repo8 repo8;
@MockBean
private Repo9 repo9;
@MockBean
private Repo10 repo10;
@MockBean
private Repo11 repo11;
@MockBean
private ServiceTwo serviceTwo;
@Autowired
private ServiceOne serviceOne;
@BeforeEach
void setUp() throws Exception {
//static objs1-11 and serviceObj to be returned as mock data here
}
@AfterEach
void tearDown() throws Exception {
}
@Test
void methodTest() throws JsonProcessingException {
when(repo1.findAll()).thenReturn(obj1);
when(repo2.findAll()).thenReturn(obj2);
//for other repo3...repo11
when(repo11.findAll()).thenReturn(obj11);
when(serviceTwo.getObj(params).thenReturn(serviceObj);
String result= serviceOne.method();
assertEquals(expectedResult, result);
}
serviceObj 没有返回,因此 sn-p 抛出错误并且没有到达 assert 语句。
【问题讨论】:
标签: spring-boot mockito junit5