ruby - 组织 Ruby 测试文件夹结构的最佳实践是什么?

标签 ruby unit-testing rspec code-organization testunit

在 Java 中,通常您会创建两个具有相同包层次结构的源文件夹 srctest

在 Ruby 中,您是否只是将所有测试放在与被测类相同的文件夹中?还是在单独的文件夹中创建类似的层次结构?如果是这样,您如何管理单元测试中的 require 路径?

最佳答案

起初,每个 gem 都有一个典型的布局。代码几乎完全在 lib 中。在根目录中,只有 READMEgemspec 文件和一些可选配置数据等元数据。如果您使用 Rails 或 Sinatra 之类的工具编写 Web 应用程序,则会改用它们的布局标准。

尽管在所有这些项目类型中,都可以在相似的位置找到测试。根据您使用的测试框架,有不同的标准。

如果您使用 Test::Unitminitest ,测试通常在 test 目录中。关于如何实际组织该目录中的测试文件,没有真正的标准。我个人发现至少部分反射(reflect)测试代码的文件布局很有用。如果您慷慨地使用模块/命名空间,那么在您的测试中遵循此设置时,这应该也会使其更具可读性。

如果您使用 RSpec ,测试(然后称为规范)进入 spec 目录。上述关于实际测试布局的注意事项也适用于此。

最后,如何设置测试主要取决于您自己的决定。由于测试是一个很多人都有不同(和强烈)意见的领域,因此没有通往成功的圣路。您应该看看您使用的一些 gem 以及它们是如何工作的。 minitest 布局的示例可以在 Rails gems 中找到,例如对于ActiveRecord . RSpec 测试的一个例子是我的 rackstash图书馆。

关于ruby - 组织 Ruby 测试文件夹结构的最佳实践是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8202523/

相关文章:

ruby-on-rails - 如何在RSpec中验证渲染模板的局部性

ruby - ruby/libgosu 中的中心文本

ruby-on-rails - 缺少必需的 key

ruby-on-rails - 主要 :Object (NoMethodError) 的未定义方法 `require_relative'

javascript - 如何在类星体测试中运行单文件测试

unit-testing - 单元测试生成图像的代码的最佳方法是什么?

ruby - Sinatra:过滤器排序之前

c# - 检查是否处理了所有枚举值

ruby-on-rails - capybara /rspec : should GET/PUT tests be in different files?

ruby-on-rails - 如何编写远程请求规范?