我们可以将大型小型测试文件 (some_controller_test.rb) 分解为多个测试文件吗

Can we breakdown a large mini-test file (some_controller_test.rb) into multiple test files

我的 rails 应用程序中有一个名为 reportscontroller。该控制器有 4 或 5 个(报告)操作,而不是一个非常大的文件。

我正在使用迷你测试来测试我的应用程序。本控制器的测试文件 (reports_controller_test.rb) 文件太大。我只想 分解 每个报告的测试文件,这样我就可以分别为每个报告编写测试。我真的可以将我的 1 个小型测试文件 拆分成 多个测试文件.

  • 在您的控制器测试文件夹中创建一个文件夹(即 reports
  • 使用每个报告名称制作 .rb 文件
  • 控制器测试Class 该文件夹的所有文件中的名称应该相同
    • 在你的情况下“ReportsControllerTest
  • 运行 你的测试,它们会在 运行 时间合并,并作为单个文件工作,但它会帮助你将大文件分成小文件

我知道这个问题有点老了,但是 Minitest 仍然被大量使用,所以我希望这对任何人都有用,因为我有点困惑。

在很多情况下,分解文件是您应该做的事情。如果新文件与其他文件具有相同的 class 名称,那么我们将看到 Malik 报告的行为(文件已合并)以及 @framauro13 谈到的限制。使用这种方法,您将只有一种设置方法可用于所有文件。

真正有意义的是拥有完全隔离的测试文件。所以在这种情况下,我们必须打破在测试文件的 class 名称中指示控制器的惯例,并指示我们要测试的控制器。可以这样做:

class MyCustomName < ActionController::TestCase
    tests Some::Namespace::TheController
    ...
end

class OtherCustomName < ActionController::TestCase
    tests Some::Namespace::TheController
    ...
end

可以在 "Controller is automatically inferred".

部分找到更多内容 here