Mockito Spy-调用构造函数之前的存根

Mockito Spy-调用构造函数之前的存根,第1张

Mockito Spy-调用构造函数之前的存根

感谢您的建议,但这有点太复杂了。
最后,我通过扩展类并覆盖我的设置方法来模拟该方法。这样,默认构造函数将不会调用安装程序的实现,而是会调用覆盖的方法。
这是代码:

// src/author/MyClass.javapublic class MyClass {    public MyClass() {        setup();    }    protected void setup() {        throw new Exception("I hate unit testing !");    }    public boolean doesItWork() {        return true;    }}// test/author/MyClass.javapublic class MyClassTest {    private class MockedMyClass extends MyClass {        @Override        protected void setup() {        }    }    private MyClass instance;    @Before    public void setUp() { // Not to be confusing with `MyClass#setup()`!        instance = new MockedMyClass();    }    @Test    public void test_doesItWork() {        assertTrue(instance.doesItWork());    }}

如果您不希望MyTest的安装程序方法被测试以外的其他子类调用或覆盖(因为其他开发人员可能会通过使用安装程序方法将事情弄得很糟),只需将可见性更改为default即可,只有您的类才能呼叫设置。


如果有更简单的方法,请回答问题,因为我对解决方案不是100%满意。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5016870.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-14
下一篇 2022-11-14

发表评论

登录后才能评论

评论列表(0条)

保存