草庐IT

constant_test

全部标签

ruby - Rails3 : Functional tests fail with NoMethodError: undefined method `user' for nil:NilClass

我将Devise(v2.1.2)与Omniauth一起用于用户验证。我正在对一个Controller进行功能测试,该Controller将JSON对象作为POST主体,因此使用了thisquestion中的技术。设置原始POST正文。这适用于开发,但是当我运行测试时,我在一个完全未经身份验证的方法上遇到异常:NoMethodError:undefinedmethod`user'fornil:NilClass示例测试:test"shouldbeabletocreateanitem"dom=FactoryGirl.attributes_for(:item)raw_post:create,{

ruby-on-rails - rails : Grape API - NameError: uninitialized constant API

我目前正在学习如何使用Rails。我遵循了本网站上的教程:http://funonrails.com/2014/03/building-restful-api-using-grape-in-rails/我没有将文件放在lib文件夹中,而是放在app文件夹中,并按照教程中的说明编辑了application.rb。其余代码与教程中的相同。我在自定义错误格式化程序之前完成了它,但是如果我启动Rails服务器来测试所有内容,我会收到以下错误:ExitingE:/Users/Robert/Documents/RubymineProjects/WarframeApi/config/routes.r

ruby-on-rails - Rails has_many :through Uninitialized constant

我正在寻找有关调试Railshas_many:through关联问题的帮助。我有3个模型,Package、Venue和我的连接表Packagevenuepackage.rbclassPackage地点.rbclassVenuepackagevenue.rbclassPackagevenuepackagevenues表的架构create_table"packagevenues",force::cascadedo|t|t.integer"package_id"t.integer"venue_id"t.datetime"created_at",null:falset.datetime"upd

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 - Rails 使用 constantize 获取模块

我在模块的命名空间下有一个类,比如说Module::Klass我能够从控制台访问Klass,它给了我:Module::Klass但是,如果我尝试使用:"klass".constantize#CallingconstantizeonString它会出错,因为它没有附加模块命名空间。所以,我的问题是:有没有一种方法可以根据其当前上下文将字符串常量化,以便我收到类名称及其模块? 最佳答案 如果“当前上下文”是指您当前在该模块中,则可以直接访问其常量。moduleFooclassBarendself.const_get('Bar')#=>F

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

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

ruby - 如何获取正在通过 rack-test 测试的 Sinatra 应用程序实例?

我想获取正在通过rack-test测试的应用程序实例,以便我可以模拟它的一些方法。我以为我可以简单地将应用程序实例保存在app方法中,但由于某些奇怪的原因不起作用。看起来rack-test只是使用实例来获取类,然后创建自己的实例。我做了一个测试来证明我的问题(它需要gem“sinatra”、“rack-test”和“rr”才能运行):require"sinatra"require"minitest/spec"require"minitest/autorun"require"rack/test"require"rr"describe"instantiatedapp"doincludeRa

ruby - "test".partition( "s") 从 Enumerable 模块而不是 String 模块调用分区

我尝试使用partitionmethodfromtheStringmodule对字符串进行分区.但是,这样做时:puts"test".partition("s")我收到以下错误消息:Line1:in`partition':wrongnumberofarguments(1for0)(ArgumentError)fromt.rb:1我相信Ruby调用了partitionmethodfromtheEnumerablemodule,而不是我想要的来自String模块的那个。如何让Ruby调用所需的方法? 最佳答案 作为injekt已经指出,

ruby - 为什么 Test::Unit.test_order= 没有按预期工作?

有问题InRuby,howtoIcontroltheorderinwhichTest::Unittestsarerun?并想引用test_order=:defined,来回答documentationforTest::Unit::TestCase.test_order说:Setsthecurrenttestorder.Herearetheavailableorder::alphabeticDefault.Testsaresortedinalphabeticorder.:randomTestsaresortedinrandomorder.:definedTestsaresortedind

ruby-on-rails - 我可以使用 rspec 登录到 test.log 吗?

这里有一个简单的规范来测试这个:require'spec_helper'describeA_controllerdobeforedo@cat_noise="Meow"endit"shoulddonothingbecauseit'semptyandIcreateditjusttotestlogger!"dologger.info"----------Herecomesacatnoise-----------"logger.info@cat_noiselogger.info"-----------Theregoesacatnoise-----------"endend这是我的测试环境的日志