Questions tagged «rspec-rails»

rspec-rails是RSpec测试框架的扩展,为测试Ruby on Rails应用程序提供支持。

6
使用rspec测试文件上传-Rails
我想测试Rails中的文件上传,但不确定如何执行此操作。 这是控制器代码: def uploadLicense #Create the license object @license = License.create(params[:license]) #Get Session ID sessid = session[:session_id] puts "\n\nSession_id:\n#{sessid}\n" #Generate a random string chars = ("a".."z").to_a + ("A".."Z").to_a + ("0".."9").to_a newpass = "" 1.upto(5) { |i| newpass << chars[rand(chars.size-1)] } #Get the original file name upload=params[:upload] name = upload['datafile'].original_filename @license.format …

1
RSpec:功能和请求规范之间有什么区别?
Rspec的功能规格和请求规格之间在概念上有什么区别? 从功能规格文档中: 功能规格是高级测试,旨在通过应用程序行使功能性。他们应该仅通过外部接口(通常是网页)来驱动应用程序。 对于要求规格: 请求规范为Rails的集成测试提供了一个精简的包装,并旨在在整个协议栈中推动行为,包括路由(由Rails提供)而无需进行存根(取决于您)。通过请求规范,您可以: 指定一个请求 在多个控制器之间指定多个请求 在多个会话中指定多个请求 我知道功能规格使用Capybara,而请求规格则不使用。但这几乎不值得采用不同的概念。



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文件而又不会弄乱一切?

9
工厂女孩创建绕过我的模型验证
我正在使用Factory Girl在模型/单元测试中为组创建两个实例。我正在测试该模型以检查对.current的调用是否根据如下所述的expiry属性仅返回“当前”组... describe ".current" do let!(:current_group) { FactoryGirl.create(:group, :expiry => Time.now + 1.week) } let!(:expired_group) { FactoryGirl.create(:group, :expiry => Time.now - 3.days) } specify { Group.current.should == [current_group] } end 我的问题是,我已经在模型中进行了验证,该模型可以检查新组的有效期是否在今天的日期之后。这会在下面引发验证失败。 1) Group.current Failure/Error: let!(:expired_group) { FactoryGirl.create(:group, :expiry => Time.now - 3.days) } ActiveRecord::RecordInvalid: Validation failed: Expiry is before todays …

2
Object.any_instance should_receive vs Expect()接收
以下代码段按预期工作: Object.any_instance.should_receive(:subscribe) 但是,当使用新的rspec期望时,它不起作用: expect(Object.any_instance).to receive(:subscribe) 错误是: expected: 1 time with any arguments received: 0 times with any arguments 我该如何使用Expect()来接收它?

12
60秒内无法获得稳定的Firefox连接(127.0.0.1:7055)
在测试场景cucumber时,运行rspec测试时出现以下错误 无法在60秒内获得稳定的firefox连接(127.0.0.1:7055)(Selenium :: WebDriver :: Error :: WebDriverError) 使用ruby (1.9.2) selenium-webdriver (2.27.2)和firefox (19.0) 使用rspec-rails (2.12.1),capybara (2.0.2)和其他几个宝石,我也有增加launchy的宝石,但他们似乎并不成为一个问题。我正在使用Windows 7。

7
Rails 3.1,RSpec:测试模型验证
我从在Rails中使用TDD开始了我的旅程,遇到了一个关于模型验证测试的小问题,我似乎找不到解决方案。假设我有一个用户模型, class User < ActiveRecord::Base validates :username, :presence => true end 和一个简单的测试 it "should require a username" do User.new(:username => "").should_not be_valid end 这样可以正确测试状态验证,但是如果我想更具体些怎么办?例如,在错误对象上测试full_messages。 it "should require a username" do user = User.create(:username => "") user.errors[:username].should ~= /can't be blank/ end 我对最初尝试(使用should_not be_valid)的担心是RSpec不会产生描述性错误消息。它只是说“预期有效?返回假,就成真”。但是,第二个测试示例有一个较小的缺点:它使用create方法而不是new方法来获取错误对象。 我希望我的测试可以更具体地说明他们正在测试的内容,但同时不必接触数据库。 有人有意见吗?
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.