标签: stub

模拟和存根之间有什么区别?

我已经阅读过各种关于模拟和测试中存根的文章,包括Martin Fowler的Mocks Are Not Stubs,但仍然不明白其中的区别.

testing mocking stub

884
推荐指数
28
解决办法
30万
查看次数

由于对所需库rt.jar的限制而对类进行访问限制?

我正在尝试编译由IBM的WSDL2Java在Java5上创建的Java 1.4代码,而无需重新创建存根并在Eclipse中看到此错误.我假设创建的存根应该只要运行时jar可用就可以编译(它们是).

Access restriction: The type QName is not accessible due to restriction on required library C:\Program Files\Java\jdk1.5.0_16\jre\lib\rt.jar

完整的类名是 javax.xml.namespace.QName

到底发生了什么?

这是我试图用香肠重构一头猪的情况吗?我最好重新创建存根吗?

java eclipse wsdl wsdl2java stub

813
推荐指数
12
解决办法
62万
查看次数

假装,嘲弄和捣蛋有什么区别?

我知道我如何使用这些术语,但我想知道是否有单独测试的伪造,模拟存根的可接受定义?你如何为你的测试定义这些?描述您可能使用每种情况的情况.

以下是我如何使用它们:

:一个实现接口但包含固定数据而没有逻辑的类.根据实施情况,简单地返回"好"或"坏"数据.

Mock:一个实现接口的类,允许动态设置值以返回/异常从特定方法抛出,并提供检查是否已调用/未调用特定方法的功能.

存根:类似于模拟类,但它不提供验证方法是否已被调用/未调用的能力.

模拟和存根可以由模拟框架手动生成或生成.伪造的类是手工生成的.我主要使用模拟来验证我的类和依赖类之间的交互.一旦我验证了交互并且正在通过我的代码测试备用路径,我就会使用存根.我主要使用假类来抽象出数据依赖性,或者每次使用模拟/存根都太繁琐.

unit-testing terminology mocking stub definition

650
推荐指数
11
解决办法
17万
查看次数

什么是"Stub"?

因此,继续我的新年决议以获得更多TDD,我现在开始更多地使用Rhino Mocks.

我真正想要做的一件事就是确保我真正了解我所要做的事情,所以我想检查一下我对目前所看到的情况的理解(我认为最好把它放在这里作为一个资源).

什么是"Stub"?

testing tdd unit-testing stub

111
推荐指数
5
解决办法
5万
查看次数

"存根"在编程中意味着什么?

例如,这句话是什么意思?

在任何现代Web应用程序中,与外部API集成几乎是一种保证.要有效地测试此类集成,您需要将其存根.一个好的存根应该易于创建,并且始终与实际的当前API响应保持同步.在这篇文章中,我们将概述使用存根的外部API 的测试策略.

api stub

108
推荐指数
7
解决办法
10万
查看次数

Spock测试框架中Mock/Stub/Spy之间的区别

我不明白Spock测试中Mock,Stub和Spy之间的区别,我在网上看过的教程并没有详细解释它们.

testing mocking stub spy spock

83
推荐指数
3
解决办法
4万
查看次数

如何在node.js中存根process.env?

我想存根process.env.FOO使用bar.

var sinon = require('sinon');
var stub = sinon.stub(process.env, 'FOO', 'bar');
Run Code Online (Sandbox Code Playgroud)

我糊涂了.我看过文件,但我还是不明白.sinonjs docs

sinonjs是一个例子,不是sinonjs没关系.

stub node.js sinon

68
推荐指数
5
解决办法
4万
查看次数

RSpec stubbed方法可以按顺序返回不同的值吗?

我有一个模型Family,location它有一个合并location其他对象的成员的方法,成员.(成员与家庭有关,但这在这里并不重要.)

例如,给定

  • member_1有location=='圣地亚哥(旅游,5月15日返回)'
  • member_2有location=='圣地亚哥'

Family.location可能会返回'圣地亚哥(member_1旅行,5月15日返回)'细节不重要.

为了简化Family.location的测试,我想要存根Member.location.但是,我需要它返回两个不同的(指定的)值,如上例所示.理想情况下,这些将基于属性member,但只是在序列中返回不同的值就可以了.在RSpec有办法做到这一点吗?

可以在每个测试示例中覆盖Member.location方法,例如

it "when residence is the same" do 
  class Member
    def location
      return {:residence=>'Home', :work=>'his_work'} if self.male?
      return {:residence=>'Home', :work=>'her_work'}
    end
  end
  @family.location[:residence].should == 'Home'
end
Run Code Online (Sandbox Code Playgroud)

但我怀疑这是好习惯.在任何情况下,当RSpec运行一系列示例时,它不会恢复原始类,因此这种覆盖"毒药"后续示例.

那么,有没有办法让stubbed方法在每次调用时返回不同的指定值?

testing rspec ruby-on-rails stub

66
推荐指数
3
解决办法
3万
查看次数

如何在MiniTest中存根?

在我的测试中,我想为任何类的实例存根固定响应.

它可能看起来像:

Book.stubs(:title).any_instance().returns("War and Peace")
Run Code Online (Sandbox Code Playgroud)

然后,每当我打电话,@book.title它就会返回"战争与和平".

有没有办法在MiniTest中执行此操作?如果是的话,你能给我一个示例代码片段吗?

或者我需要像摩卡这样的东西?

MiniTest确实支持Mocks,但Mocks对于我需要的东西来说太过分了.

ruby stub minitest

60
推荐指数
7
解决办法
5万
查看次数

在RSpec中,是否有一种方法相当于"unstub"而是"should_receive"?

在使用RSpec时是否有任何方法可以删除任何存根和模拟?

例:

RestClient.should_receive(:delete).with("http://www.example.com")
...
... 

# this will remove the mocking of "should_receive" and 
# restore the proper "delete" method on "RestClient".
RestClient.mocking_reset
Run Code Online (Sandbox Code Playgroud)

(mocking_reset是我所需功能的虚构名称).

我知道有一种方法"unstub"可以重置"stubs"而不是"should_receive".

那么,有没有任何方法相当于"unstub"而是"should_receive"?

Panayotis

rspec mocking stub

38
推荐指数
3
解决办法
2万
查看次数