我正在尝试为命名空间Controller创建RSpecController测试,但rspec似乎无法检测嵌套并为post:create操作生成正确的路径。这是我的规范代码:#for:/app/controllers/admin/crm/report_adjustments_controller.rbrequire'spec_helper'describeAdmin::Crm::ReportAdjustmentsControllerdorender_viewsbefore(:each)dosigninenddescribe"GET'index'"doit"returnshttpsucce
我正在尝试在RSpec中测试RailsController问题(虽然我不确定这个事实是否与我的问题完全相关),所以我想我会使用匿名Controller。这是我的设置:describeMyConcerndocontrollerdoincludeMyConcerndefeditputs"Checkpoint!"@value=concern_methodrendertext:"testeditmethodcalled"endendit"shouldcallconcern_method"doget:edit,id:1assigns(:value).shouldeq"expected_value
在我的Rails应用程序中,我有一个.js.erb文件,其中包含一个根据某些Ruby代码动态设置的变量。varmyTimer=;该应用程序运行良好,但我在某些自动化测试中遇到了问题。该问题出现在使用此JavaScript的RSpec功能测试中。我的spec文件有许多测试可以动态更改rubyMyApp.config.timeout_time时间以测试不同的场景。在我的规范文件中,第一个示例通过,其余示例失败。我终于意识到这是因为myTimer永远不会在JavaScript端更新。当第一个测试运行时,JavaScript会使用在Ruby中设置的当前值进行编译。当我为第二次测试更改Rub
你好程序员和开发人员!!!,我是RoR的初学者,我在Rails中创建了一个简单的项目来学习它的工作原理,所以在那个项目中,我在为create编写规范时遇到了问题Controller的方法。当我试图在规范文件中传递对象的关联属性时,在Controller中它没有获得所有属性。在subjects_controller.rb文件的create方法中。我创建了一个名为attr的变量>在此变量中,我存储了从subjects_controller_spec.rb文件发送的所有值。attr=(params.require(:subject).permit(:name)).merge(:classro
Feature:testrandomnessInordertomakesomecodetestableAsadeveloperIwantArray#sampletobecomeArray#first如果可以访问Klass.any_instance.stubblock中的实例,那将是可能的。像这样:Array.any_instance.stub(:sample){instance.first}但是那个afaik是不可能的。无论如何,场景需要! 最佳答案 我找到了一个hacky解决方案,我已经在rspec版本2.13.1和2.14.4上
试图将一些参数传递给rspec,但无法为此目的找到任何合适的命令行选项。我可以为此使用环境变量,但不确定这是配置测试的最佳(也是最透明)方式。那么,我该如何传递命令行参数呢?如果不能-哪个是最好和最可接受的替代方案? 最佳答案 一种简洁的方法是为您的选项添加标签,尽管这可能不适用于您的情况。rspec--tagsleep_5_seconds然后在你的spec_helper.rb中RSpec.configuredo|c|before(:each,:sleep_5_seconds=>true)dosetup_5_second_sleep
我正在阅读一些离开公司的人写的Rspec。我想知道这一行:let(:mailer_class){Class.new(AxeMailer)}let(:mailer){mailer_class.new}describe'#check'dobeforedomailer_class.username'username'mailer.from'tester@example.com'mailer.subject'subject'endsubject{lambda{mailer.send(:check)}}正在测试这个类:classAxeMailer我想知道这和let(:mailer_class){
我有以下结构:MyProject-->Mainfolderofmyproject.MyProject/my_class.rbMyProject/inputs/input1.txtMyProject/inputs/input2.txtMyProject/rspec/spec_helper.rbMyProject/rspec/my_class_spec.rb什么是优雅的方式或最常见的方式,以便我可以在my_class_spec.rb中使用input1.txt和input2.txt? 最佳答案 您可以像这样从my_class_spec.r
我有一个简单的MySQL包装类,它将运行查询并返回结果。classRsqldefinitialize(db)@client=Mysql2::Client@db=dbenddefexecute_query()client=@client.new(@db)client.query("select1")endend我想测试一些涉及查询结果的东西,但我不想实际连接到数据库来获取结果。我试过这个测试,但它不起作用:RSpec.describeRsqldoit"doesit"domock_database=doublersql=Rsql.new(mock_database)mock_mysql_c
当还有一个同名的全局Controller时,我在为命名空间Controller创建Controller规范时遇到了一个奇怪的问题。Controller名称是HomeController和Backend::HomeController。请注意,我还没有创建文件app/controllers/backend/home_controller.rb,只有全局Controller存在app/controllers/home_controller。rb因此我希望测试会出现错误,但事实并非如此。它过去了,全是绿色和快乐。我的规范是这样的#spec/controllers/backend/home_c