我们可以将一个大的迷你测试文件(some_controller_test.rb)分解为多个测试文件

时间:2015-10-14 05:27:41

标签: ruby-on-rails unit-testing testing minitest rails-4-2-1

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

我正在使用迷你测试来测试我的应用程序。该控制器的测试文件 (reports_controller_test.rb)文件太大了。我想仅针对每个报告分解测试文件,以便我可以单独为每个报告编写测试。我可以将 1迷你测试文件分成许多测试文件

2 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:1)

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

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

真正有意义的是拥有完全隔离的测试文件。因此,在这种情况下,我们必须打破在测试文件的类名中指示控制器的约定,并指出我们要测试的控制器。它可以这样做:

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

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

更多信息可以在&#34中找到here;控制器会自动推断&#34;。