我们能否将一个大型的迷你测试文件(some_controller_test.rb)分解为多个测试文件?



我有一个控制器命名为reports在我的rails应用程序。该控制器有4或5个(报告)操作,文件不是很大。

我使用mini-test来测试我的应用程序。该控制器的测试文件(reports_controller_test.rb)文件太大。我想要分解测试文件,只针对每个报告,这样我就可以分别为每个报告编写测试。我真的可以把我的1个小测试文件拆成多个测试文件

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

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

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

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

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

可以在"自动推断控制器"一节找到更多信息。

最新更新