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

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

作为具有EasyMock,Mockito等的Mocks,Stubs在Java中使用什么?

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

希望这个答案对您有帮助

香港专业教育学院以前读过,并没有帮助:(

提问者有责任提供示例代码和他们已完成的现有研究。 这个问题需要改进。

我认为框架或技术都没有关系。 cks和存根可以定义如下。

存根是系统中现有依赖项(或协作者)的可控替代。 通过使用存根,您可以测试代码而无需直接处理依赖项。

模拟对象是系统中的伪造对象,它决定单元测试是通过还是失败。 它通过验证被测对象是否与假对象进行了预期的交互来实现。

也许这些图像可以阐明存根与模拟物之间的相互作用。

存根

48feff00a1040c7ae291b3afc6a0b689.png

嘲笑

835c73d5615208a5923ce4a7364e876e.png

您的意思是,当我们使用存根时,我们不创建存根类的对象吗?

按照@Sergey Lagutin的答案。您创建存根以馈送到CUT(测试中的代码/类)-存根是依赖项替换。

要在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";

}

}

您的意思是我只再次写了一些代码,但是这次更简单了,为此编写了一个测试用例?接口,类和测试类?而已?

@Hamid是的,你说得对。如果您想使用模拟,我想有些类需要与外部服务或数据库进行交互。为了避免这些交互,您可以编写比原始类更容易实现的存根。

您介意给我一个例子吗?怎么容易?

@Hamid,因为您可以写几行代码来实现存根类。在编写单元测试时,您将专注于目标类,而不想测试目标类的依赖关系。因此,您应该了解为什么要使用模拟,存根等。

为了减少实现存根的工作,您仍然可以使用库。 anystub-guides.github.io有一些类可以对HTTP流量和db-access进行存根

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值