【发布时间】:2021-01-14 11:12:09
【问题描述】:
假设我有一个控制器和多个服务。
Class Controller1{
private ServiceA servicea;
}
Class ServiceA {
private ServiceB serviceb;
}
Class ServiceB {
private ServiceC servicec;
private Utility utility;
}
Class ServiceC {
private Dao dao;
}
在 bouve 示例中,如果我想为 ServiceA 编写单元测试,那么我必须模拟 ServiceB。
第一个问题:只测试一个服务类对我来说没有多大意义,因为这些都是相关的服务并且协同工作。
我可以将 ServiceB 和 ServiceC 注入 ServiceB 而不是模拟它们吗?
基本上我不想参加任何服务课程。我只想模拟 Dao 层。
但问题是 Dao 非常流畅。
我该如何解决这个问题?非常感谢任何帮助。
我的代码示例
@ExtendWith(MockitoExtension.class)
@TestInstance(Lifecycle.PER_CLASS)
public class ServiceTest {
@InjectMocks
ServiceA servicea;
@Mock
ServiceB serviceb;
@Mock
ServiceC servicec;
@Test
public void testFeatureOne()
{
}
}
【问题讨论】:
标签: java unit-testing junit junit5