【发布时间】:2016-02-09 22:46:10
【问题描述】:
我定义了一个TwitterAPI 类,它与Twitter 的API 交互。模块中的方法进行两个单独的 API 调用。因此,我在 TwitterAPI 类的单元测试中的 before 块中定义了两个 WebMock stub_requests。
我现在正在编写基于 capybara/rspec 的集成测试。一些测试场景涉及使用 Twitter API 数据的页面,例如:
feature 'View Twitter feed,' do
let(:twitter_feed_page) { TwitterFeedPage.new }
let(:user) { FactoryGirl.create :user }
scenario "Twitter feed is displayed" do
login(user)
twitter_feed_page.load
expect(twitter_feed_page).to have_text("Test tweet")
# etc.
end
end
我希望这些集成测试使用与我的单元测试相同的存根数据。所以 stub_requests 将在多个测试之间共享。我是否应该将我定义的 stub_requests 移动到我的rails_helper.rb 并拥有某种允许特定测试使用存根的标志?还是应该将 stub_requests 复制/粘贴到集成测试本身?拥有多个存根请求副本并不是执行此操作的 DRY 方式,但似乎更容易阅读/理解存根的工作原理。
【问题讨论】:
-
你解决了吗?
标签: ruby-on-rails rspec capybara integration-testing webmock