【问题标题】:Creating rspec files for existing model (beginner)为现有模型创建 rspec 文件(初学者)
【发布时间】:2018-11-19 16:14:47
【问题描述】:

我有一个带有一个模型的 Rails 应用程序(按照教程),但我忘记在开始时安装 gem Rspec。我现在已经完成了,但是 Spec 文件和文件夹没有显示出来。

我已阅读以下内容:How do I generate specs for existing controllers? 并尝试了一些生成文件的命令行(我太菜鸟了,我不知道它实际上做了什么)

但没有新的规范文件!

会不会是因为我有一个模型而不是一个控制器?什么是正确的命令行?或者,我可以直接使用什么名称创建它们?

【问题讨论】:

    标签: ruby-on-rails-4 rspec


    【解决方案1】:

    再次运行生成器:

    rails generate rspec:model MyModel
    rails generate rspec:controller MyController
    

    它会询问您是否要覆盖现有文件。根据您的情况回答。您可能希望保留现有的模型/控制器文件。新的控制器规范应该以(例如)spec/controllers/my_controller_spec.rb 结尾。

    或者您可以简单地手动添加规范文件。详情请咨询rspec-rails documentation

    我还建议阅读Guide to Testing Rails Applications

    【讨论】:

    • 尝试了第一个并得到无法找到生成器 rspec:model。尽管 Bundle Install 返回 5 个 rspec gem(-mocks、-core .. 和 rspec (3.0.0))
    • 好吧,我的 gemfile 中似乎引用了“rspec”,因为我需要“rspec-rails”。现在我已经安装了 gems 并且 rails:generate rspec:install 现在可以工作了。我应该在 gemfile 中同时引用 rspec (3.0.0) 和 rspec-rails (3.0.1) 吗?它们之间有什么区别吗?
    • rspec-rails 应该安装rspecrspec-mocks 等。所以你只需要在Gemfile 中包含rspec-rails; bundler 将获取适当的相关 gem。
    • 另外,你可能应该接受另一个答案,而不是这个:)
    • 我不知道为什么我首先安装了 rspec 而不是 rspec-rails。好吧,两只鸟一块石头。 :) 非常感谢你和 artmees
    【解决方案2】:

    首先删除test目录然后运行以下命令

    rails generate rspec:install
    

    如果您使用的是 bundler,请改用以下命令

    bundle exec rails generate rspec:install
    

    它应该在你的 Rails 根目录中创建一个 spec 目录

    在该目录中,您应该在其他目录中找到以下文件spec_helper.rb

    然后您可以根据需要编辑此文件

    要运行测试,您应该使用以下命令

     rspec
    

    如果您使用的是捆绑程序,则如下

    bundle exec rspec 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-07-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-05
      • 2022-11-25
      • 1970-01-01
      相关资源
      最近更新 更多