我正在尝试在过滤器之前编写一个RSpec来让用户登录。我有一个产品Controller。为了查看产品,用户必须登录。我在spec/support/utilities中添加了一个登录方法,如下所示:deflogin(user)postlogin_path,email:user.email,password:"password"end然后我在我的spec/controllers/products测试中调用了beforefilter中的方法:before:eachdouser=FactoryGirl.create(:user)login(user)end当我运行测试时,出现以下错误:Thea
我有一个基于ActiveRecord的模型:-House它有各种属性,但没有formal_name属性。但是它确实有一个用于formal_name的方法,即defformal_name"Formal#{self.other_model.name}"end如何测试此方法是否存在?我有:describe"checkthename"do@report_set=FactoryGirl.create:report_setsubject{@report_set}its(:formal_name){should=="this_should_fail"}end但是我得到了undefinedmethod
我在Sinatra应用程序上运行某些rspec规范时遇到问题。我只是在学习Ruby,所以很遗憾,我的知识不足以解决我在使用一本书(RubyonRails中面向服务的设计,PaulDix着)中的代码时遇到的问题。问题是这些测试并没有真正运行(我认为)。在应用程序目录中,我运行$rubyspec/service_spec.rb,但我没有看到测试通过或失败的迹象。我从文件/service.rb中得到几条日志消息,但这就是显示的所有输出。我加入了一些puts调用来显示beforeblock和itblock没有被执行(即使describeblock被执行)。如果您想查看有关代码的更多信息,请
我最近通过rubyweekly电子邮件发现了SitePrism。看起来很棒。我可以预见它会成为future。我看到的例子大多是cucumber步骤。我想弄清楚如何将SitePrism与rspec结合使用。假设主页为@home_page,login_page为@login_page我可以这样理解@home_page.load#=>visit@home.expanded_url然而,我不确定的部分是,如果我想点击例如“登录”链接,capybara中的浏览器会转到登录页面-然后我如何访问登录页面的实例,没有加载它。@home_page=HomePage.new@home_page.loa
我正在将带有Rspec的测试集成到一个相当大的/已开发的应用程序中。当我运行测试时,我的一些初始化程序出现了非常奇怪的错误。例如,我的carrierwave.rb加载了一个yaml文件,当我运行测试命令时,我得到:carrierwave.rb:11:in`blockin':undefinedmethod`[]'fornil:NilClass指的是下面第二行代码:fog_config=YAML::load_file(Rails.root.join'config/fog.yml')[Rails.env.to_s]config.fog_directory=fog_config['direct
我是测试新手,所以我不确定我应该在这里调试什么。也就是说,我有两种不同的用户类型:作者和读者,它们是用户的子类。他们都可以在我的应用程序中正常注册,读者测试也没有任何问题。作者的注册表单包括一个stripe付款表格-并在提交表格之前远程调用Stripe的API。这是测试的样子:require'spec_helper'feature'Authorsignup'doscenario'authorcanseesignupform'dovisitroot_pathexpect(page).tohave_css'form#new_author'endscenario'usersignsupand
我目前遇到了一个循环,其中retry在我的测试中被执行。我怎样才能stubretry并仍然测试它上面的代码?我有一段代码可以捕获HostKeyMismatch异常:rescueNet::SSH::HostKeyMismatch=>ee.remember_host!retryend我的规范:describe"rescuesNet::SSH::HostKeyMismatch"doit"resyncsthesshkeys"doNet::SSH::HostKeyMismatch.any_instance.should_receive(:remember_host!).and_return(tr
我想使用RSpec来确保我的可枚举类与Ruby的访问者模式兼容:#foo.rbclassFoodefinitialize(enum)@enum=enumendincludeEnumerabledefeach(&block)@enum.each(&block)endend这是我的rspec文件:#spec/foo_spec.rbrequire'rspec'require'./foo.rb'describeFoodolet(:items){[1,2,3]}describe'#each'doit'callsthegivenblockeachtime'doblock=proc{|x|x}blo
我正在尝试使用rspec测试我的rake任务,它运行良好,但问题是之后没有删除记录。我已将config.use_transactional_fixtures=true放入配置文件中,没有任何影响。在其他测试中,它运行良好。这是我的代码:require'rspec'require'spec_helper'require'rake'describe'my_appraketasks'dodescribe'rake_task_1'dobefore{MyApp::Application.load_tasks}it'shouldtestit!'do10.times{create(:record)}
我使用Grapeapi,我需要编写一个带有自定义header的测试我的代码:it"shouldacceptmessage"dopost"/api/v1/my/route",post_data,secret:"ASDFGHJKL"last_response.status.should==201end但是路由根本没有header,我也试过headers['secret']="ASDFGHJKL"还有request.env['secret']什么都没用。我如何将rspec中的header传递给grape路由? 最佳答案 您是否尝试过hea