如何在JUnit和Java中使用存根? [英] How to use stubs in JUnit and Java?

查看:99
本文介绍了如何在JUnit和Java中使用存根?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我曾与JUnit和Mocks合作,但我想知道,JUnit中的Mocks和Stubs之间有什么区别,以及如何在JUnit,Java中使用Stubs?
并且作为拥有EasyMock,Mockito等的Mocks,Stubs在Java中使用了什么?

I have worked with JUnit and Mocks but I'm wondering, what are the differences between Mocks and Stubs in JUnit and how to use Stubs in JUnit, Java? And as Mocks that have EasyMock, Mockito and so on, what does Stubs uses in Java?

请为Java中的Stubs提供一些示例代码。

Please give some example code for Stubs in Java.

推荐答案

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

To use stubs in junit you don't need any frameworks.

如果你想存根一些接口就实现它:

If you want to stub some interface just implement it:

interface Service {
    String doSomething();
}

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

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

Then create new stub object and inject it to tested object.

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

If you want to stub a concrete class, create subclass and override stubbed methods:

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";
    }
}

这篇关于如何在JUnit和Java中使用存根?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆