首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在JUnit和Java中使用存根?

如何在JUnit和Java中使用存根?
EN

Stack Overflow用户
提问于 2015-08-08 15:57:48
回答 2查看 46.4K关注 0票数 18

我曾经使用过JUnit和Mock,但我想知道,JUnit中的Mock和Stub有什么不同,以及如何在JUnit中使用Stub?和具有EasyMock、Mockito等的Mock一样,Stub在Java中使用什么?

请给出一些用Java编写的Stub示例代码。

EN

回答 2

Stack Overflow用户

发布于 2015-08-08 16:03:52

要在junit中使用存根,不需要任何框架。

如果您想要存根某个接口,只需实现它:

代码语言:javascript
复制
interface Service {
    String doSomething();
}

class ServiceStub implements Service {
    public String doSomething(){
        return "my stubbed return";
    }
}

然后创建新的存根对象,并将其注入到测试对象中。

如果你想要存根一个具体的类,创建子类并覆盖存根方法:

代码语言:javascript
复制
class Service {
    public String doSomething(){
        // interact with external service
        // make some heavy computation
        return "real result";
    }
}

class ServiceStub extends Service {
    @Override
    public String doSomething(){
        return "stubbed result";
    }
}
票数 25
EN

Stack Overflow用户

发布于 2019-11-29 09:48:42

一般来说-模拟意味着实现一些行为,存根-只是提供一些数据。换句话说,当您需要演示它更改/保持某些状态时,最好使用work mock

当您的类仅公开内部状态时,请使用存根这个词。实际上,您可以在任何地方使用mock,而stub只是mock的子集

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31890991

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档