我正在尝试在 Rpec 中为一个看起来像这样的类编写测试用例
class ABC
def method_1( arg )
#does something and return a value based on arg
end
def initialize
@service = method_1( arg )
end
def getSomething_1
return @service.get_seomthing_1
end
def getSomething_2
return @service.get_seomthing_2
end
end
现在我想用一个模拟对象启动@service 实例变量,以便我可以使用该模拟对象返回值,我可以根据这些值验证我的单元测试。
我试图做类似的事情
describe ABC do
before(:each) do
myObject = double()
myObject.stub(:get_something_1).and_return("SomeValue")
ABC.any_instance.stub(:method_1).and_return(myObject)
end
it "Checks the correctness of getSomething_1 method of class ABC" do
@abc = ABC.new
@abc.getSomething_1.should eql("SomeValue")
end
end
现在,当我尝试运行测试时,@service 没有使用我想要的对象进行初始化。似乎 method_1 没有被定义的行为嘲笑。有人可以帮助我如何为我的模拟对象分配@service。