当前位置: 首页 > 面试题库 >

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

萧德馨
2023-03-14
问题内容

我曾经使用过JUnit和Mocks,但我想知道,JUnit中的Mocks和Stub之间有什么区别,以及如何在JUnit,Java中使用Stub?作为具有EasyMock,Mockito等的Mocks,Stubs在Java中使用什么?

请提供Java中的存根示例代码。


问题答案:

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

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

interface Service {
    String doSomething();
}

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

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

如果要存根一个具体的类,请创建子类并重写存根的方法:

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测试。我必须使用Java,并且想使用单元测试。 我的问题是:我有一个带有一些抽象方法的抽象类。但是有些方法不是抽象的。如何使用JUnit测试此类?示例代码(非常简单): 我要测试并运行。 在“JUnit常见问题解答”部分中,我找到了此链接,但我不理解作者想在此示例中说些什么。这行代码是什么意思? 问题答案: 如果您没有该类的具体实现,并且方法不是测试

  • 我对Android有点陌生,几个小时以来一直在努力研究如何将Hamcrest matchers包括在我的测试项目中。代码看起来应该在Eclipse中运行,没有指示的错误。但是当我运行测试时,Hamcrest类没有加载。我得到“NoClassDefFoundError:org.hamcrest.Matchers”。 在过去的3个小时里,我一直在浏览论坛,发现有人以前遇到过这种情况,但运气不好。我一定

  • 我试图用JUnit在测试会话期间正确使用Mockito来代替存根类。不幸的是,在网络上有很多关于Mockito的教程,但关于存根方法的教程较少,我想学习这项技术。 此测试由Mockito进行: 为了澄清这些是所涉及的类: 1) 控制器 2)回购接口: 3) 回购协议: 4) 验证器: 5) RecentyExceptionHandler

  • 问题内容: 我不明白JUnit 4.8如何与Hamcrest匹配器一起工作。有内部定义了一些匹配器在。同时,也有一些 其他 的匹配器中。那么,去哪儿呢?我是否应该在项目中明确包含hamcrest JAR并忽略JUnit提供的匹配器? 特别是,我对匹配器感兴趣,并且在任何这些jar中都找不到。我还需要其他东西吗?:) 还有一个哲学问题:为什么JUnit将包包含在自己的发行版中而不是鼓励我们使用原始的