带参数的存根与模拟对象的深入应用
1. 带参数存根的基础
在测试中,存根(stub)是一个重要的概念。当我们需要根据输入参数返回不同的值时,可以使用带参数的存根。在 Mocha 中,这通过 with() 方法来实现。
例如:
test "let's stub a class again" do
Project.stubs(:find).with(1).returns(
Project.new(:name => "Project Greenlight"))
Project.stubs(:find).with(2).returns(
Project.new(:name => "Project Blue Book"))
assert_equal("Project Greenlight", Project.find(1).name)
assert_equal("Project Blue Book", Project.find(2).name)
end
在这个例子中, with() 方法接受一个或多个参数。当调用 stub() 方法时,Mocha 会在传递的参数和声明的存根之间查找匹配项,并返回与这些参数匹配的值。
需要注意的是,通过设置与特定输入值相关的期望,会将 Mocha 存根限制为仅适用于这些输入值。例如,如果尝试 Project.find(3) ,测试将会失败,并触发一个比较隐晦的错误消息。
超级会员免费看
订阅专栏 解锁全文
40

被折叠的 条评论
为什么被折叠?



