Capybara中的Stubbing方法有特色规格

时间:2014-09-08 20:26:39

标签: ruby-on-rails rspec mocking capybara capybara-webkit

使用Capybara,特别是capybara-webkit驱动程序时,是否可以存根方法?

这似乎不起作用:

before do 
  User.any_instance.stub(:get_tweets)
  visit tweets_path
end

我认为它不起作用,因为我们在rspec域中存根用户对象,而capybara-webkit驱动程序正在一个单独的"线程"中执行Rails应用程序。 / p>

在功能规格中是否有关于模拟/存根的最佳实践?

1 个答案:

答案 0 :(得分:0)

Capybara通常根本不会执行您的Rails应用程序。它用于点击应用程序的端点,浏览页面并对其内容进行断言。

这意味着您需要使用db\seeds.rb创建测试数据,然后在加载虚拟数据的情况下针对应用运行您的规范。

或者,在某些集成测试中,您可以使用Capybara规范创建测试数据 - 例如,创建用户并随后尝试更新该用户的配置文件的集成测试。