Tag: rspec

在RSpec-2.11中使用带'expect'的隐式`subject`

使用rspec-2.11中的新expect语法,怎样才能使用隐式subject ? 有没有比明确参考subject更好的方法,如下所示? describe User do it 'is valid' do expect(subject).to be_valid # <<< can `subject` be implicit? end end

尝试运行rspec时出错:`require':无法加载这样的文件 – rails_helper(LoadError)

我正在尝试运行Ruby on Rails的rspec。 我正在运行Rails 4.1.1。 我已经安装了gem,已经build立了一些testing的规格文件夹。 我通过$ rails g rspec:install创build了一个目录 我试图通过$ rake db:test:prepare创build一个testing数据库$ rake db:test:prepare但是它会抛出这个错误消息: WARNING: db:test:prepare is deprecated. The Rails test helper now maintains your test schema automatically, see the release notes for details. 所以我最终看着这个堆栈溢出post ,而这两个选项,工作的是: rake db:schema:load RAILS_ENV=test 所以, 现在我需要运行rspec 。 当我从命令行运行$ rspec spec时出现这个错误: /Users/myname/.rbenv/versions/2.1.1/lib/ruby/2.1.0/rubygems/core_ext/ kernel_require.rb:55:in `require': cannot load such file — rails_helper […]

使用RSpec来检查是否有其他对象的实例

我需要一种方法来检查一个对象是否是使用RSpec的另一个对象的实例。 例如: describe "new shirt" do it "should be an instance of a Shirt object" # How can i check if it is an instance of a shirt object end end

如何在Rails应用程序中testingElasticSearch(Rspec)

我想知道如何在使用ElasticSearch和Tire时在应用程序中testingsearch。 如何设置新的ElasticSearchtesting实例? 有没有办法嘲笑它? 你知道的任何gem可以帮助吗? 有些东西,我发现有帮助: 我发现了一篇很好的文章,回答了我所有的问题:) http://bitsandbit.es/post/11295134047/unit-testing-with-tire-and-elastic-search#disqus_thread 另外,轮胎作者Karmi有一个答案。 这也很有用: https : //github.com/karmi/tire/wiki/Integration-Testing-Rails-Models-with-Tire 我不敢相信在问之前我没有find这些…

为什么在Rails下RSpec很慢?

每当我为Rails应用程序运行rspectesting时,在真正开始运行testing之前需要花费一天的时间。 为什么rspec这么慢? 有没有一种方法来加快Rails的初始负载或单独的我的Rails应用程序的一部分,我需要(例如ActiveRecord的东西),所以它不会加载绝对一切运行一些testing?

在RSpectesting后清除ActionMailer :: Base.deliveries

我有我的UserMailer类下面的RSpectesting: require "spec_helper" describe UserMailer do it "should send welcome emails" do ActionMailer::Base.deliveries.should be_empty user = Factory(:user) UserMailer.welcome_email(user).deliver ActionMailer::Base.deliveries.should_not be_empty end end 这个testing是第一次通过,但是第二次运行失败了。 在做了一些debugging之后,看起来第一个testing将一个项目添加到ActionMailer :: Base.deliveries数组中,并且该项目从未被清除。 这会导致testing的第一行失败,因为数组不是空的。 在RSpectesting之后清除ActionMailer :: Base.deliveries数组的最好方法是什么?

如何规范一个私人的方法

我有一个私人的方法模型,我想用RSpec规范, 你通常怎么做? 你只testing调用私人的方法吗? 或者也是私人的? 如果是这样,你好吗?

获得水豚testing的下拉select值

我必须为网站编写testing。 我正在尝试获取下拉框的选定值。 到目前为止,我可以通过做下拉菜单的内容 find_field('restrictions__rating_movies').text 返回 – 不允许电影G PG M R13 R15 R16 R18 R RP16允许所有电影 我可以得到所选对象的值。 find_field('restrictions__rating_movies').value 返回 – 1000 这并不帮助我很多,因为我试图从下拉框中获取所选项目的文本。 <select class="" id="restrictions__rating_movies" name="restrictions[][rating_movies]"> <option value="0">Don't Allow Movies</option> <option value="100">G</option> <option value="200">PG</option> <option value="300">M</option> <option value="325">R13</option> <option value="350">R15</option> <option value="375">R16</option> <option value="400">R18</option> <option value="500">R</option> <option value="600">RP16</option> <option value="1000" selected="selected">Allow All Movies</option></select> 在这种情况下显示我需要得到值'允许所有电影'我已经尝试了上述两个例子的许多不同的组合。

为什么不为Rspec + Selenium使用共享的ActiveRecord连接?

看来,处理Selenium和testing的最普遍接受的方式是避免使用事务性的装置,然后在testing/场景之间使用诸如database_cleaner之类的东西。 我最近碰到下面的文章 ,build议做以下几点: spec_helper.rb class ActiveRecord::Base mattr_accessor :shared_connection @@shared_connection = nil def self.connection @@shared_connection || retrieve_connection end end # Forces all threads to share the same connection. This works on # Capybara because it starts the web server in a thread. ActiveRecord::Base.shared_connection = ActiveRecord::Base.connection 这似乎比替代品更好的性能。 有没有人有任何理由为什么不应该使用?

如何在rspec中编写Rails 3.1引擎控制器testing?

我写了一个Rails 3.1引擎与命名空间岗位。 因此,我的控制器可以在app / controllers / posts /中find,我在app / models / posts中的模型等。我可以很好的testing模型。 一个模型的规格看起来像… module Posts describe Post do describe 'Associations' do it … end …一切正常。 但是,控制器的规格不起作用。 Rails引擎安装在/ posts,但控制器是Posts :: PostController。 因此,testing将查找控制器路由为posts / posts。 describe "GET index" do it "assigns all posts as @posts" do Posts::Post.stub(:all) { [mock_post] } get :index assigns(:posts).should eq([mock_post]) end end 这产生… […]