我有一个服务接口:
interface MyService
{
int getItem();
}
以及一种实施方式:
@Service
class MyServiceImpl : implements MyService {
public MyServiceImpl(List<Loader> loaders) {
}
public int getItem() {
Loader loader = getTheLoader();
return loader.getItem();
}
}
我想进行单元测试
MyServiceImpl
。还有更多内容,只需转发
getItem()
调用加载器,所以我想我想测试实际的类。我不想测试一个实际的加载程序,因为这更像是一个集成测试,是吗?
所以,我不确定这是否是正确的方法?创建Impl类的真实实例,然后创建TestLoader的真实实例?
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
public class MyServiceTests {
private MyService myService;
static class TestLoader implements Loader<String, Object> {
@Override
int getItem() {
}
}
@BeforeAll
void init() {
myService= new MyServiceImpl(List.of(new
TestLoader()));
}
我确实想捕获对TestLoader::getItem等的调用计数。
有点像我需要创建一个模拟加载程序而不是真正的加载程序来捕获调用计数?
但不清楚我会如何嘲笑
Loader<String, Object>
并重写getItem()类。