我有一个类似这样的服务对象:classSecurityQueryServiceclassContract::NotFound我有以下相关规范:require'spec_helper'describeSecurityQueryServicedolet(:user){create(:customer)}let!(:equity_contract){create(:equity_contract)}describe"#call"dodescribe"#find_contract"doit"returnscontractbasedoncontracttype."doservice=Securi
我的测试有问题。我有这个规范:context'whennosectionissupplied'doit'raisesanArgumentErrorregardingthemissingsection_idargument'doexpectdodescribed_class.with_sectionend.toraise_error(ArgumentError).with_message/wrongnumberofarguments\(given0\,expected1\)/endend在某些环境中,消息是:ArgumentError:wrongnumberofarguments(0fo
我在RubyonRails环境中使用RSpec和FactoryGirl进行测试。我想指定我的工厂如下:factory:userdorole#stubfactory:residentdoassociation:role,factory::resident_roleendfactory:admindoassociation:role,factory::admin_roleendend我想在我的规范中做这样的事情:require'rails_helper'RSpec.describeUser,type::modeldocontext"allusers"do#describeauser#sub
这是创建目录的方法。defcreate_directory(path)system'mkdir','-p',pathend我为此方法创建了一个rspec并使用fakefs来模拟目录的创建。it'shouldcreatedirectorygivenpathasparameter'doFakeFSdocreate_directory(DIRECTORY_PATH)endexpect(File.exists?(DIRECTORY_PATH)).tobe_truthyend当我执行rspec命令时,我得到了这个错误。Failures:1)commonTestforcommonmethoduse
我遇到了以下问题:环境:Ruby:2.3.1和Rails5.0.0.1我正在尝试使用RSpec和FactoryGirl验证日期时间字段。我遇到了这个错误:expected:"2016-11-1113:30:31UTC"(FromFactoryGirl)got:"2016-11-11T13:30:31.218Z"(Fromdatabase)我的代码:klass_object=FactoryGirl.create(:character)klass=CharacterRSpec.shared_examples'APIGET#index'do|klass|before{get:index,pa
我在尝试验证请求规范时遇到问题。如何在每个http请求的header中传递有效的身份验证token?我的方法是否正确?tweets_request_spec.rbrequire'rails_helper'RSpec.describe'TweetsAPI',type::requestdobeforedo@tweets=create_list(:tweet,10)@tweet=@tweets.firstenddescribe'GET/tweets'dobefore{get'/tweets',{"Authorization":*somesortoftoken*}}it"returnstwee
与许多非greenfeild项目一样,我到达新工作后发现大多数测试都是使用功能规范而不是Controller/模型规范执行的。这自然意味着测试需要很长时间才能执行。有没有一种方法可以设置RSpec,以便我的功能测试最后运行-并且只有在所有其他测试首先成功时它们才会运行。我正在将应用程序迁移到Controller测试以加快执行速度,但如果模型验证出现问题或我的Controller之一被破坏,则无需等待15分钟来完成功能测试。我想做的事可行吗?(我目前正在RubyMine中运行测试;但如果需要,我可以转到rakespec)。 最佳答案
我仍在努力学习RSpec,所以如果完全忽略了某些东西,我很抱歉......我正在为包含许多成分的食谱编写测试。成分实际上是按百分比添加的(配方中有总百分比列),因此我想确保总列在每次保存后更新。所以现在我的recipe_ingredient模型的RSpec测试是这样的:it"shouldupdaterecipetotalpercent"do@recipe=Factory.create(:basic_recipe)@ingredient.attributes=@valid_attributes.except(:recipe_id)@ingredient.recipe_id=@recipe
我正在尝试为inherited_resourcesController编写规范。我决定使用rspec的mock_model模拟所有与数据库的集成。不幸的是,我无法为创建和更新操作编写规范,因为我收到以下错误:https://gist.github.com/936947有人可以帮我解决这个问题吗? 最佳答案 我在使用flexmock时遇到了同样的问题。原因是它没有使用update_attributes方法来做出路由决策。它检查resource.errors以查看它是否为空。因此,为了让它正确响应,我们还需要模拟errors方法。这是l
我只是花了很长时间试图弄清楚为什么我的规范单独通过,但是当同时运行Controller和库测试时,一些规范莫名其妙地失败了。罪魁祸首是:在一个规范中:describeSomeThingdoCONSTANT_VALUE="avalue"#...examplesetc...end还有一个:describeAnotherThingdoCONSTANT_VALUE="adifferentvalue"#...therestishistoryend我分配给这些常量的值在我的规范之间泄漏并导致意外行为。我应该使用letblock来定义常量等吗?还是别的? 最佳答案