草庐IT

TEST_RESULTS

全部标签

ruby-on-rails - 单元测试隔离 : 20 lines of test for 1 line of code?

据我了解,在单元测试中methodsshouldbeisolatedfromtheirdependencies,这样他们就不会受到环境变化的影响。尽管如此,删除所有依赖项让我觉得我是在测试实现而不是行为。换句话说,通过隔离依赖关系,我将测试与实现细节相结合。因此,任何coderefactoring会导致测试失败,即使行为(期望的结果)没有改变。例如,这是一个简单的(Ruby)方法:defsend_requestupdate_attributes(response.page_params)ifactive?end这是我对这一行代码的两个独立测试:let(:page){Page.new}d

ruby - 如何使用 Ruby 的 Test::Unit 只测试一个方法?

假设我有一个这样的测试:classMyUnitTest我的测试用例是破坏性的,我需要在测试之间重新生成输入。因此,一次只运行一个测试用例会很有用。目前,我的方法是评论我不想执行的测试,但肯定有更好的方法吗?那么,例如,当我执行测试时,如何只运行test_first? 最佳答案 使用--namePATTERN参数来过滤出您要运行的测试名称。D:\Projects>rubytest.rbLoadedsuitetestStarted...Finishedin0.000000seconds.3tests,0assertions,0failu

ruby-on-rails - Ruby on Rails 教程 : RSpec test failing when refactoring with matcher

我正在处理MichaelHartl'sRailstutorial并且在使用匹配器重构时无法通过Rspec测试。终端输出Failures:1)AuthenticationloginwithinvalidinformationFailure/Error:it{shouldhave_error_message('Invalid')}NoMethodError:undefinedmethod`has_error_message?'for##./spec/requests/authentication_pages_spec.rb:21:in`block(4levels)in'spec/suppo

ruby - 有ruby Unit::Test 说出测试结果

我一直在使用内置的OSX“say”命令来表示长时间运行的测试结束。简单方便。我想让它说出结果的最后一行,上面写着“6次测试,18次断言,0次失败,0次错误”,但仍保持持续输出。任何想法如何做到这一点?我试过:rubyoverlay_test.rb|tail-n1|say但这不会在测试发生时输出测试结果。让它只说“0次失败,0次错误”这一行的最后两部分的加分项。 最佳答案 您可以使用tee将输出定向到多个文件/进程(这里,say和STDOUT):rubyoverlay_test.rb|tail-n1|tee>(say)作为奖励,使用s

ruby-on-rails - 如果有的话,rspec 相对于 test::unit 的主要优势是什么?

现在似乎每个人都在使用rspec,但rails仍然默认与test::unit捆绑在一起。rspec与测试单元相比有什么主要优势吗?很难获得关于这个主题的直接信息... 最佳答案 在这些讨论中通常非常关注语法,这当然是主观的,但RSpec提供了一些有用的功能,这些功能在测试/单元、minitest或其扩展库中是看不到的。对我来说,三大巨头是:可读输出(TURN对此有帮助,但它没有打印出您需要复制以运行失败的单个示例的命令之类的东西)。合理的CTRL-C。在rspec-2中,当你按下CTRL-C时,那一刻正在运行的示例结束(你可以第二次

ruby-on-rails - rails : How to direct to results page on form 'submit'

我想在用户点击8道多选测验的提交按钮时将他们引导至“结果”页面,同时还将他们的答案保存到数据库中。目前我正在使用“form_for”并传入current_user。当点击提交时,它因此被定向到用户/显示操作。我想转到详细说明用户结果的页面。我该怎么做呢?这是我的(非常粗略的测试)表格,到目前为止,有一个多项选择题(由bootstrap设置样式):A.Always.I'mtheleaderandshouldhavethefinalsayB.Sometimes,butIthinkthegroupshouldmakedecisionsifpossibleC.Igenerallydon'tge

ruby-on-rails - Ruby on Rails,rake 数据库 :seed or db:reset - how do you dictate which mode (development/test/production)?

使用RubyonRails,当您使用rakedb:seed或db:reset重置或重新播种数据库时-您如何指定操作要处于哪种模式(开发/测试/生产)?我使用Sqlite进行开发,使用postgresql进行测试和生产——但使用不同的连接参数。我似乎无法控制Rails在我的开发箱(我在虚拟机Ubuntu13.l0中运行)或在Heroku上运行的模式。此外,当您在Heroku上运行应用时,您如何决定在哪种模式(开发/测试/生产)中运行您的应用?Heroku文档建议的方式不起作用(也就是说,将单行放入Procfile网络:bundleexecunicorn-p$PORT-E$RACK_ENV

ruby-on-rails - 我如何 stub results.map(& :blank_image) in Rspec?

我正在写测试,我到了这一行: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传递给

ruby - 如何区分Sinatra请求对象和Rack Test请求方法?

我有一个在Sinatra应用程序范围内运行的方法,用于检查请求是否安全:secure_request?request.env['HTTPS']=='on'end这工作正常,但是当我从另一个不共享Sinatra应用程序范围的类调用它时,它会尝试发出机架测试请求,并引发错误:参数数量错误(1为0).那么,有没有办法显式指定Sinatra应用程序请求,例如self.request或app.request? 最佳答案 从另一个类调用request方法闻起来像是糟糕的代码设计,将另一个类与您的应用程序紧密耦合。secure_request?在

ruby-on-rails - ruby rails : Custom routes for search results

我正在构建一个供用户提交“冒险”的应用程序,我希望设置各个页面以按城市显示冒险。我按照这个建议(RubyonRails4:DisplaySearchResultsonSearchResultsPage)将搜索结果显示在一个单独的页面上,效果很好,但我想更进一步,并有预先设置的链接来将用户引导到特定城市的冒险事件。我不确定如何从http://localhost:3000/adventures/search?utf8=%E2%9C%93&search=Tokyo获取结果以显示在http://本地主机:3000/页面/东京。另外,我对Rails很陌生;这是我的第一个项目。routes.rbr