Ruby on rails 如何进行自动测试以正确地改变单一模型和复数控制器

Ruby on rails 如何进行自动测试以正确地改变单一模型和复数控制器,ruby-on-rails,tdd,Ruby On Rails,Tdd,举个例子,如果我有一个Book模型和一个BooksController,autotest,ZenTest套件的一部分将获取两者之间的关联,并将test/unit/Book_test.rb和test/functional/books_controller_test.rb加载到测试套件中。另一方面,如果我有一个故事模型和一个StoriesController,autotest会拒绝注意test/functional/stories\u controller\u test.rb,不幸的是ZenTest

举个例子,如果我有一个Book模型和一个BooksController,autotest,ZenTest套件的一部分将获取两者之间的关联,并将test/unit/Book_test.rb和test/functional/books_controller_test.rb加载到测试套件中。另一方面,如果我有一个故事模型和一个StoriesController,autotest会拒绝注意test/functional/stories\u controller\u test.rb,不幸的是ZenTest不是rails插件,因此它不能从ActiveSupport的多元化方法中获益。因此,它使用简单的正则表达式来匹配文件名。查看ZenTest/autotest/rails.rb以查看rails的现有映射列表

最后,您有两个选择:

猴子补丁你自己的映射规则 忘掉多元化吧
希望这有帮助

不幸的是,ZenTest不是rails插件,因此它不能从ActiveSupport的多元化方法中获益。因此,它使用简单的正则表达式来匹配文件名。查看ZenTest/autotest/rails.rb以查看rails的现有映射列表

最后,您有两个选择:

猴子补丁你自己的映射规则 忘掉多元化吧
希望这有帮助

您可以覆盖.autotest文件中的映射。在主目录中或项目的根目录中。您可能需要“主动支持”才能实现Stringpluralize和Stringsingularize


借用中rspec-rails插件的代码,它似乎已经在ActiveSupport中实现了单数/复数的魔力。不过,您可能需要从那里提取RSpec特定的假设。

您可以覆盖.autotest文件中的映射。在主目录中或项目的根目录中。您可能需要“主动支持”才能实现Stringpluralize和Stringsingularize


借用中rspec-rails插件的代码,它似乎已经在ActiveSupport中实现了单数/复数的魔力。不过,你可能需要从那里拿出RSpec的具体假设。

我终于弄明白了到底发生了什么,而这毕竟与多元化无关

它与word stories有关,后者可以作为测试库RSpec的一个特殊目录?黄瓜我忘记了,所以它被列在我的~/.autotest配置文件中作为一个例外!我不确定我是什么时候将代码片段剪切并粘贴到文件中的,可能是在我刚开始使用ZenTest时,不知道我到底在做什么

Autotest.add_hook :initialize do |at|
  %w{... stories ...}.each {|exception|at.add_exception(exception)}
end
添加尾部斜杠/恢复了测试并删除了我额头上的砖块痕迹


所以我想我学到的教训是:在调试时检查错误的配置文件。

我终于弄明白了到底发生了什么,而这毕竟与多元化无关

它与word stories有关,后者可以作为测试库RSpec的一个特殊目录?黄瓜我忘记了,所以它被列在我的~/.autotest配置文件中作为一个例外!我不确定我是什么时候将代码片段剪切并粘贴到文件中的,可能是在我刚开始使用ZenTest时,不知道我到底在做什么

Autotest.add_hook :initialize do |at|
  %w{... stories ...}.each {|exception|at.add_exception(exception)}
end
添加尾部斜杠/恢复了测试并删除了我额头上的砖块痕迹

所以我想我们学到的教训是:在调试时检查是否有多余的配置文件