Questions tagged «rspec»

RSpec是一个受JBehave启发的针对Ruby编程语言的行为驱动开发(BDD)框架。它包含自己的基于JMock的完全集成的模拟框架。该框架可以被视为特定领域的语言(DSL),类似于自然语言规范。

4
RSpec控制器测试-空白response.body
使用RSpec测试我的控制器时,我遇到了一个问题-response.body调用始终返回空字符串。在浏览器中,所有内容均可正确渲染,黄瓜功能测试似乎可以正确处理,但RSpec每次都失败。 对响应对象的其他期望,例如response.should render_template('index')通过没有任何问题。 你们有没有遇到过这个问题?也许可以以其他方式获得响应html? 至于版本,Rails 2.1.0,RSpec 1.2.7。

7
在rspec中禁用一组测试?
我有一个测试规范,其中describes一个类和其中的contexts每个类具有不同的it块。 有没有办法我可以context暂时禁用? 我尝试pending "temporarily disabled"在context要禁用的顶部添加一个呼叫,并且在运行规范时确实看到了有关挂起的信息,但随后它继续运行其余测试。 这就是我的经历: describe Something context "some tests" do it "should blah" do true end end context "some other tests" do pending "temporarily disabled" it "should do something destructive" do blah end end end 但是就像我说的那样,它只是在待处理的调用下继续运行测试。 搜索使我进入此邮件列表线程,其中rspec的创建者(?)表示在我正在运行的rspec 2中是可能的。我想它确实有效,但是禁用以下所有测试并没有达到预期的效果,这是我看到pending电话时想到的。 是否有其他选择或我做错了吗?
102 ruby  rspec 

9
水豚歧义解决
如何解决水豚的歧义?由于某些原因,我需要页面中具有相同值的链接,但由于收到错误,因此无法创建测试 Failure/Error: click_link("#tag1") Capybara::Ambiguous: Ambiguous match, found 2 elements matching link "#tag1" 我之所以无法避免,是因为设计。我正在尝试使用页面右侧的tweets / tags和页面左侧的tags重新创建Twitter页面。因此,不可避免的是,相同的链接页面会显示在同一页面上。

6
如何获得rspec-2给出与测试失败相关的完整跟踪?
现在,如果我使用我的测试套件运行,rake spec则会出现错误: 1)SegmentsController GET'索引'应该工作 失败/错误:获取“索引” #的未定义方法`locale' #./spec/controllers/segments_controller_spec.rb:14: 在'的块(3个级别)中 这是正常现象,因为我确实有错误:) 问题在于该跟踪不是很有帮助。我知道它闯入了segments_controller_spec.rb第14行,但这就是我称之为测试的地方: ### segments_controller_spec.rb:14 get 'index' 我希望有实际的换行和完整的跟踪,而不是spec文件夹中的部分。 运行--trace无济于事。

1
rspec 3-对类方法进行存根
我正在从rspec 2.99升级到rspec 3.0.3,并已将实例方法转换为use allow_any_instance_of,但是还没有弄清楚如何对类方法进行存根。我有这样的代码: module MyMod class Utils def self.find_x(myarg) # Stuff end end end 我的rspec 2测试做到了: MyMod::Utils.stub(:find_x).and_return({something: 'testing'}) Rspec 3的实现方式是什么?

9
在大型Rails应用程序中加速RSpec测试
我的RSpec测试中有一个带有2000多个示例的Rails应用程序。不用说,这是一个很大的应用程序,还有很多需要测试的地方。此时运行这些测试的效率非常低,并且由于需要花费很长时间,因此在推动新版本之前,我们几乎不鼓励编写这些测试。我在自己的spec.opts文件中添加了--profile文件,以查找运行时间最长的示例,其中至少有10个示例平均需要运行10秒。在您的RSpec专家中这正常吗?10秒对于一个例子来说完全太长吗?我意识到,使用2,000个示例,将需要花费很短的时间来彻底测试所有内容-但此时4个小时有点荒谬。 您看到最长的运行示例是什么样的时间?我该怎么做才能解决现有规格问题,从而找出瓶颈并加快速度。在这一点上,每分钟确实会有所帮助。

4
RSpec:let和before块有什么区别?
let和beforeRSpec中的块有什么区别? 以及何时使用它们? 在下面的示例中,什么是更好的方法(之前或之后)? let(:user) { User.make !} let(:account) {user.account.make!} before(:each) do @user = User.make! @account = @user.account.make! end 我研究了这个stackoverflow帖子 但是像上面这样定义允许关联的东西好吗?

5
在导轨中使用RSpec和Capybara时未定义的方法'visit'
我无法让水豚与rspec一起工作。它给了我这个错误: undefined method `visit' for #<RSpec::Core::ExampleGroup::Nested_1:0x16529f8 @example=nil> 我知道有很多关于此的帖子,但是没有解决方案对我有用。其中大多数涉及的规范不在/ spec / features中-属于我的。 首先是错误: $bundle exec rspec spec F Failures: 1) security signs users in Failure/Error: visit "/sessions/new" NoMethodError: undefined method `visit' for #<RSpec::Core::ExampleGroup::Nested_1:0x16529f8 @example=nil> # ./spec/features/security_spec.rb:4:in `(root)' Finished in 0.006 seconds 1 example, 1 failure Failed examples: rspec ./spec/features/security_spec.rb:3 # security …

2
spec / rails_helper.rb与spec / spec_helper.rb有何不同?我需要吗?
我第二次在做Rails教程。当我输入这个 rails generate integration_test static_pages 我得到了spec/rails_helper.rb,spec/spec_helper.rb而不仅仅是spec/spec_helper.rb 现在,当我运行测试时,它们比上次执行时更长(更“冗长”)并且更慢。我想知道两个文件之间的区别是什么,以及我做错了什么。另外,有没有一种方法可以摆脱rails_helper.rb文件而又不会弄乱一切?

5
如何使用has_many关联在FactoryGirl中建立工厂
有人可以告诉我是否只是以错误的方式进行设置吗? 我有以下具有has_many.through关联的模型: class Listing < ActiveRecord::Base attr_accessible ... has_many :listing_features has_many :features, :through => :listing_features validates_presence_of ... ... end class Feature < ActiveRecord::Base attr_accessible ... validates_presence_of ... validates_uniqueness_of ... has_many :listing_features has_many :listings, :through => :listing_features end class ListingFeature < ActiveRecord::Base attr_accessible :feature_id, :listing_id belongs_to :feature belongs_to :listing end 我正在使用Rails …

4
水豚:如何通过其ID填写输入字段
我有这个: <input class="string optional" id="course_group_courses_attributes_2_name" name="course_group[courses_attributes][2][name]" placeholder="Lengua" size="15" type="text" /> </div> 如何通过ID填写该字段?
88 rspec  capybara 


6
Rails 4:如何重置测试数据库?
我在Rails 4上,并注意到我的一些RSpec测试失败了,因为我的一些测试重构使用了before过滤器(大概是由于事务)。这篇文章描述了一个类似的问题: 运行后无法清除Rails测试数据库 代替使用DatabaseCleaner gem,是否存在rake命令来清除测试数据库?我相信rake db:test:prepareRails 4不推荐使用。此外,如果在进行类似交易之前 post :create, user: Fabricate.attributes_for(:user) 是持久的。是否有另一种重构方法来避免需要手动清除测试数据库?

7
Rspec没有看到我的模型Class。未初始化的常量错误
我正在Ruby on Rails应用程序中针对我的模型在Rspec上编写测试。并且在启动“ rspec spec”时收到此错误 command: /spec/models/client_spec.rb:4:in `<top (required)>': uninitialized constant Client (NameError) 我使用Rails 4.0.0和Ruby 2.0.0 这是我的client_spec.rb: require 'spec_helper' describe Client do it 'is invalid without first_name', :focus => true do client = Client.new client.should_not be_valid end end 和Gemfile: source 'https://rubygems.org' # Bundle edge Rails instead: gem 'rails', github: 'rails/rails' …

10
生成具有所有RESTful功能的控制器
我正在尝试生成具有所有RESTful操作的控制器。我在Wikibooks上读过-Ruby on Rails,我所需要做的就是用控制器名称调用生成器,而我会得到的。所以,我跑了,script/generate rspec_controller Properties但是控制器空了。 任何其他建议将不胜感激。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.