describe'#messages'dosubjectdoFactoryGirl.create:foo,:type=>'test',:country=>'US'endcontext'whenisnotU.S.'dobefore{allow(subject).toreceive(:country).and_return('MX')}describe'#messages'dosubject{super().messages}it{is_expected.toinclude'ThisfoowasnotissuedintheUnitedStatesofAmerica.'}endendend我
我正在写测试,我到了这一行:blank_images=results.map(&:blank_image)在我的测试中,我试图对它进行stub并让它返回一个数组:expect(results).toreceive(:map).with(&:blank_image).and_return([true,true,true])我不断收到消息:ArgumentError:`with`musthaveatleastoneargument.Use`no_args`matchertosettheexpectationofreceivingnoarguments.如何将&:blank_image传递给
这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Howtoremoveunittestandreplaceitwithrspec?有点奇怪的问题:当你在rails上使用rpsec而不是test::unit时,你如何处理测试目录?保留它(可能是为了任何兼容性问题?)还是删除它?
我正在尝试在我创建的小型服务器上运行一些功能测试。我在MacOSX10.6上运行Ruby1.9.2和RSpec2.2.1。我已经验证服务器工作正常并且没有导致我遇到的问题。在我的规范中,我试图生成一个进程来启动服务器,运行一些示例,然后终止运行服务器的进程。这是我的规范的代码:describe"Server"dodescribe"methods"dolet(:put){"putfoobarbeans5\nhowdy"}before(:all)do@pid=spawn("bin/server")endbefore(:each)do@sock=TCPSocket.new"127.0.0.1
非常简单的规范...@post.user.should==@user尽管这两个对象除了它们的object_id之外在所有方面都相同,但规范失败了。如果ActiveRecord对象的id相同,则它们应该等于(==)。这些对象是使用factory_girl创建的。我已经确认这两个对象都不是“.new_record?”。比较@post.user.id和@user.id的效果。更重要的是行为不一致。这些测试一直有效,但现在尽管没有任何更改,但它们还是失败了。rails3.1rspec-2.6factory_girl-2.0.5factory_girl_rails-1.1.0jruby1.6.4
我正在对基于命令行ruby的应用程序进行一些rspec测试。我正在尝试构建我的测试套件以允许测试缺少的命令行参数。具体来说,我想弄清楚ARGV[0]..ARGV[N]会出现在应用程序中的内容。我看过类似的帖子提到ENV.stub;但是,我不知道如何模拟“无名”参数和给定的顺序。如有任何帮助,我们将不胜感激。谢谢。 最佳答案 我只是在位于spec的测试用例中这样做了:it"doessomething"doarg="/tmp"exe=File.expand_path('../bin/site_checker',File.dirnam
所以我有两个规范,我认为它们在测试同一件事,但一个失败了,而另一个通过了。我正在开发一个具有重复时间表的应用程序。如果用户创建重复的行程,它将继续并为指定的每一天创建新行程。这是第一个失败的测试:it"makesfuturetrips"doexpect{FactoryGirl.create(:recurring_transportation_trip)}.tochange(Trip,:count).by(4)endrecurring_transportation_trip创建一个行程,它将通过after_save回调进行future的三个行程。此测试失败并显示错误“countshoul
我正在尝试在现有的ruby运行时中使用RSpec,并在每次文件更改时运行规范。这是因为JRuby和JVM的启动时间。为了在每次运行时消除这种情况,我想启动ruby一次,然后只重新加载更改的文件并运行规范。我正在使用guard(具有不同的扩展名)和watchr,但似乎都遇到了下面描述的问题。我将问题归结为RSpec本身。问题是,当通过RSpec::Core::Runner.run多次运行RSpec时,它工作正常,直到使用load重新加载规范文件。然后RSpecs开始运行规范两次。我已经创建了实时显示此问题的示例项目:https://github.com/mostr/rspec_d
我正在使用rspec对设备进行系统测试。该设备是模块化的,因此可以将任意数量的子设备连接到测试台。我想在很多地方编写测试,这些测试将遍历连接的子设备并在每个设备上运行相同的测试。基本上,这就是我想要做的:before(:all)@tool=discover_sub_devices()@tool.sub_devices.should==exp_sub_device_listenddescribe"somesubdevicetests"do@tool.sub_devices.eachdo|dev|it"shouldsucceedatdoingthings"dodev.do_thing.sh
我刚刚安装了SublimeText3和一些软件包。我正在做一些Ruby的事情,目前想在SublimeText中构建我的程序。但是当我点击Cmb+b来构建它时,我在SublimeText控制台中遇到了一些错误:>[Errno2]Nosuchfileordirectory:'rspec'[cmd:['rspec','-I/Applications/MAMP/htdocs/Dropbox/pragmatic-ruby','/Applications/MAMP/htdocs/Dropbox/pragmatic-ruby/studio_game.rb']][dir:/Applications/M