我有一个依赖于 3rd 方 API 的应用程序PSC
,但我想将我的黄瓜测试与对 PSC 的 API 调用隔离开来。
所以,我写了几个黄瓜步骤:
When /^we pretend that PSC is up$/ do
PscV1.default_psc_connection("test user").stub!(:default_connection_is_up?).and_return(true)
end
When /^we pretend like PSC assignments exist for all subjects$/ do
PscV1.default_psc_connection("test user").stub!(:assignment_exists?).and_return(true)
end
...这些存根应该做的是让 Cucumber 场景认为 API 调用正在工作。但是,存根似乎不会在步骤之间持续存在,因此我的场景中的进一步步骤不会获得存根返回值,它们会尝试进行实际的 API 调用,因此它们会失败。
有没有办法让存根至少在整个场景中持续存在?我已经在其他 Cucumber 测试中成功使用了存根,所以我知道它们通常可以工作,但这是我第一次编写一个 Cucumber 步骤,其全部目的是提供一个存根。