使用Capybara,特别是capybara-webkit驱动程序时,是否可以存根方法?
这似乎不起作用:
before do
User.any_instance.stub(:get_tweets)
visit tweets_path
end
我认为它不起作用,因为我们在rspec域中存根用户对象,而capybara-webkit驱动程序正在一个单独的"线程"中执行Rails应用程序。 / p>
在功能规格中是否有关于模拟/存根的最佳实践?
答案 0 :(得分:0)
Capybara通常根本不会执行您的Rails应用程序。它用于点击应用程序的端点,浏览页面并对其内容进行断言。
这意味着您需要使用db\seeds.rb
创建测试数据,然后在加载虚拟数据的情况下针对应用运行您的规范。
或者,在某些集成测试中,您可以使用Capybara规范创建测试数据 - 例如,创建用户并随后尝试更新该用户的配置文件的集成测试。