Tag: stub

rspec中的double方法是什么?

在rspec doc中说,我应该使用double方法来创buildtestingdouble。 但是我可以看到,即使我不使用double ,它也能正常工作。 不使用double有什么问题吗? 另外,如果我不使用双如何MyClass获取stub和其他rspec方法? 它们在rspec中运行时是否可用于所有对象? require 'spec_helper' class MyClass def self.run new.execute end def execute 'foo' end end describe MyClass do it 'should stub instance method' do obj = MyClass.new obj.stub(:execute).and_return('bar') obj.execute.should == 'bar' end it 'should stub class method' do MyClass.stub(:run).and_return('baz') MyClass.run.should == 'baz' end end

我如何在MiniTest中存根?

在我的testing中,我想为任何类的实例存根jar头响应。 它可能看起来像这样: Book.stubs(:title).any_instance().returns("War and Peace") 然后,每当我打电话@book.title它返回“战争与和平”。 有没有办法在MiniTest中做到这一点? 如果是的话,你可以给我一个示例代码片段? 或者我需要摩卡咖啡吗? MiniTest支持Mocks,但是Mock对我所需要的东西是过度的。

伪装,嘲弄和剔除有什么区别?

我知道我是如何使用这些术语的,但是我想知道是否有可接受的用于unit testing的伪造 , 嘲弄和剔除的定义? 你如何定义这些testing? 描述你可能使用的情况。 以下是我如何使用它们: Fake :实现接口但包含固定数据和无逻辑的类。 根据实施情况简单地返回“好”或“坏”数据。 模拟(Mock) :一个实现了接口的类,允许dynamic设置值的返回/exception,从特定方法抛出,并提供检查特定方法是否被调用/未调用的能力。 存根 :就像一个模拟类,除了它没有提供validation方法被调用/不被调用的能力。 嘲笑和存根(stub)可以由手工生成或由嘲笑框架生成。 假类是手工生成的。 我主要使用mock来validation我的类和相关类之间的交互。 一旦我validation了交互,并使用我的代码testing替代path,我使用了存根(stub)。 我主要使用假类来抽象出数据的依赖关系,或者当模拟/存根(stub)过于繁琐而无法每次设置时。

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

我试图在Java5上编译由IBM的WSDL2Java创build的Java 1.4代码,而不重新创build存根,并在Eclipse中看到这个错误。 我假设存根创build应该只要运行时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 这到底是怎么回事? 这是我试图从香肠重构猪的情况吗? 我最好重新创build存根吗?