繁体   English   中英

要在2.2.2的Rails中进行单元测试,但失败了。 谁能告诉我原因,并帮助我获得解决方案?

[英]Want to take unit test in rails of 2.2.2, but failed. Could anyone tell me the reason and help me to get the solution?

我遵循的是使用Rails进行敏捷Web开发,第三版第14章。

我在Windows中使用了命令行,并输入了以下命令: D:\\ InstantRails-2.0-win \\ rails_apps \\ GraduateDesign \\ depot> ruby​​ -I test test / unit / product_test.rb

错误消息如下所示:

D:/InstantRails-2.0-win/rails_apps/GraduateDesign/depot/app/controllers/users_co
ntroller.rb:48: warning: don't put space before argument parentheses
D:/InstantRails-2.0-win/ruby/lib/ruby/gems/1.8/gems/activesupport-2.2.2/lib/acti
ve_support/dependencies.rb:445:in `load_missing_constant': uninitialized constan
t RUBY_COPYRIGHT (NameError)
        from D:/InstantRails-2.0-win/ruby/lib/ruby/gems/1.8/gems/activesupport-2
.2.2/lib/active_support/dependencies.rb:77:in `const_missing'
        from D:/InstantRails-2.0-win/ruby/lib/ruby/gems/1.8/gems/activesupport-2
.2.2/lib/active_support/dependencies.rb:89:in `const_missing'
        from D:/InstantRails-2.0-win/ruby/lib/ruby/gems/1.8/gems/rbx-require-rel
ative-0.0.9/lib/require_relative.rb:51
        from D:/InstantRails-2.0-win/ruby/lib/ruby/site_ruby/1.8/rubygems/custom
_require.rb:36:in `gem_original_require'
        from D:/InstantRails-2.0-win/ruby/lib/ruby/site_ruby/1.8/rubygems/custom
_require.rb:36:in `require'
        from D:/InstantRails-2.0-win/ruby/lib/ruby/gems/1.8/gems/activesupport-2
.2.2/lib/active_support/dependencies.rb:155:in `require'
        from D:/InstantRails-2.0-win/ruby/lib/ruby/gems/1.8/gems/linecache-0.45-
x86-mswin32/lib/linecache.rb:66
        from D:/InstantRails-2.0-win/ruby/lib/ruby/site_ruby/1.8/rubygems/custom
_require.rb:31:in `gem_original_require'
         ... 16 levels...
        from D:/InstantRails-2.0-win/ruby/lib/ruby/gems/1.8/gems/activesupport-2
.2.2/lib/active_support/dependencies.rb:155:in `require'
        from D:/InstantRails-2.0-win/rails_apps/GraduateDesign/depot/test/test_h
elper.rb:3
        from test/unit/product_test.rb:1:in `require'
        from test/unit/product_test.rb:1

我不认为这是导致错误的原因,但是如果您忽略了该错误,则可能要检查一下。

错误的第一行包含以下内容:

warning: don't put space before argument parentheses在users_controller.rb中的warning: don't put space before argument parentheses第48行warning: don't put space before argument parentheses

错误消息的重要部分是rails找不到RUBY_COPYRIGHT常量。 自1.8.7以来,此常量一直是红宝石本身的一部分,因此我认为您使用的是更旧的版本。

鉴于此,您应该认真考虑

  1. 更新您的Ruby。 当前版本是1.9.3
  2. 使用更新的Rails。 版本2.2.2已严重过时。 3.2.2中的当前版本。

如果您的书/文档坚持使用这些旧版本,则应该找到一本更好的书,尤其是在第一次学习Rails时。 自Ruby 1.8.6和Rails 2.2以来,情况已经发生了重大变化。 使用Rails进行敏捷Web开发的第四版介绍了Rails 3。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM