草庐IT

动态测试

全部标签

ruby-on-rails - Ruby on Rails - 为什么要使用测试?

我对RubyonRails中的各种测试设备的用途感到困惑。我已经使用该框架大约6个月了,但我从未理解它的测试部分。我使用过的唯一测试是Java中的JUnit3,而且只是简短的。我读过的关于它的一切都只是显示了测试验证。rails中的验证不应该起作用吗?看起来更像是测试框架而不是测试您的代码。为什么需要测试验证?此外,测试对于代码中的任何更改似乎都非常脆弱。因此,如果您更改模型中的任何内容,则必须更改测试和装置以匹配。这不是违反了DRY原则吗?第三,编写测试代码似乎需要很多时间。这是正常的吗?刷新我的浏览器并查看它是否有效不是更快吗?我已经不得不使用我的应用程序来查看它是否正确流动并确保

Ruby 动态类。如何修复 "warning: class variable access from toplevel"

我正在尝试编写一个程序,根据从文件中读取的配置动态定义ruby​​类。我知道我可以使用Class.new来做到这一点。这是一个示例程序:x=[1,2,3]Test=Class.newdo@@mylist=xdeffooputs@@mylistendendTest.new.foo当我运行它时,我得到以下输出(使用ruby​​1.9.3p0运行):c:/utils/test.rb:4:warning:classvariableaccessfromtoplevelc:/utils/test.rb:7:warning:classvariableaccessfromtoplevel123Does

ruby-on-rails - TimeWithZone & Time.zone.now 集成测试失败

在Controller方法中,当向用户发送激活电子邮件时,我将用户变量activation_sent_at设置为等于Time.zone.now。在开发服务器上,这似乎可行(尽管我的应用程序中的时间表达式比我计算机的本地时间晚2小时)。我想包括一个集成测试,测试activation_sent_at是否确实设置正确。所以我包括了这一行:assert_equal@user.activation_sent_at,Time.zone.now但是,这会产生错误:NovisibledifferenceintheActiveSupport::TimeWithZone#inspectoutput.You

ruby-on-rails - Geocoder,ip为127.0.0.1时如何在本地测试?

我无法让地理编码器正常工作,因为我的本地IP地址是127.0.0.1,所以它无法正确定位我所在的位置。request.location.ip显示“127.0.0.1”我怎样才能使用不同的ip地址(我的互联网连接ip)以便它会带来更多相关数据? 最佳答案 一种干净利落的方法是使用MiddleWare。将此类添加到您的lib目录:#lib/spoof_ip.rbclassSpoofIpdefinitialize(app,ip)@app=app@ip=ipenddefcall(env)env['HTTP_X_FORWARDED_FOR']

ruby - 按名称动态获取 Ruby 类常量

我有一个类API,它从第三方API中提取对象并将它们构建到类型为APIObject的子类的对象中。APIObject子类与我从中提取的API中的对象名称相匹配:User我想在APIObject中定义一个类方法,允许我使用标准Rails访问器拉取对象:user=User.findid我想要将此调用转换为这样的API调用的方法:API::User::findByIdid我想使用self.class.name访问APIObject子类(User)的名称,并使用它来调用常量(API::User),但我知道API::self.class.name不会工作。我可以为每个子类一遍又一遍地重写这个方法

ruby-on-rails - 动态获取对象的属性

如何动态获取activerecord对象的属性值?例如,我有一个名为attr_name的变量。我想做这样的事情:person=Person.find(1)attr_name="address"address=person.(attr_name)可以使用哪个function_name? 最佳答案 使用person.attributes[attr_name]或person.read_attribute(att_name),或者更短,然后是person[attr_name]. 关于ruby-o

ruby-on-rails - 测试目录与 Rspec 一起存在

我正在测试lib/pdf_helper.rb。所以我创建了spec/lib目录。然后我在spec/lib目录中创建一个文件pdf_helper_spec.rb。当我测试pdf文件夹应该在public文件夹中时,这是我的代码require'spec_helper'require'pdf_helper'describe"Pdfhelpers"doit"Shouldbeinpublicfolder"dofile=File.new("#{Rails.root}/public/pdf")ifFile.exist?(file)=='true'puts"Success"elseputs"failed

ruby-on-rails - 如何使用 rspec 测试命名路由?

鉴于我有一条命名路线:map.some_route'/some_routes/:id',:controller=>'some',:action=>'other'如何使用路由规范文件“spec/routing/some_routing_spec.rb”来测试该命名路由?我在“describeSomeRouteController”block之后尝试过这个,但它不起作用,我得到“未定义的方法”helper:describeSomeRouteHelper,'someroutesnamedroutes'doit'shouldrecognizesome_route'dohelper.some_r

ruby - 使用 MIddleman 3.0 - 如何在动态页面上设置单独的页面标题?

我正在中间人中建立一个简单的投资组合网站。我根据本地YAML数据动态生成“工作”页面。这是在config.rb中:data.work.projects.eachdo|project|page"/work/#{project[0]}.html",:proxy=>"project_template.html"do@project=projectendend出于SEO目的,我希望这些动态生成的页面中的每一个都具有唯一的页面标题和描述。标题目前在布局文件中是这样设置的%title=current_page.data.title我知道我可以像这样使用frontmatter设置current_pa

ruby-on-rails - rspec 测试的 JSON 数据

我正在创建一个接受JSON数据的API,我想为其提供测试数据。有没有类似于JSON数据工厂的东西?我希望在对象和JSON中提供相同的数据,以便我可以检查导入是否按预期工作。JSON具有严格定义的结构,所以我不能调用FactoryGirl(:record).to_json。 最佳答案 在这种情况下,我将为要导入的JSON创建夹具文件。像这样的东西可以工作:json=JSON.parse(File.read("fixtures/valid_customer.json"))customer=ImportsData.import(json)