Service层的单元测试:与其Mock别人,不如Mock自己
此为抛砖贴,希望能引出更好的见解。
你会怎么单元测试这样一个service层的类?
public class Service { private BizOne bizOne; private BizTwo bizTwo; public boolean doBiz(Object param) { //用isBizOneValid()替代bizOne.getIt(param)!=null, 代码能更直接地反应业务逻辑,这也是《重构》这本书里极力推荐的作法 if (!isBizOneValid(param)) { return false; } return isBizTwoValid(param); } //这里要用包可见性方法,因为测试类里要mock它 boolean isBizTwoValid(Object param) { return bizTwo.getIt(param) == null; } boolean isBizOneValid(Object param) { Object resultOne = bizOne.getIt(param); return resultOne != null; } ...