首页 > 解决方案 > 在 Rails 中的 Minitest 测试文件中加载命名空间模块

问题描述

Rails 5.2.1 和 minitest 5.1

我有一个app/strategies/foo/bar/baz.rb要命名空间的文件

baz.rb:

module Foo
  module Bar
    class Baz

在rails控制台中我可以成功运行: test = Foo::Bar::Baz.new

在测试中/test/strategies/foor/bar/baz_test.rb

require 'test_helper'
class BazTest < ActiveSupport::TestCase

test 'I can call it' do
  test = Foo::Bar::Baz.new
end

我得到: NameError: uninitialized constant BazTest::Foo

我在顶部尝试了各种形式的需求baz_test.rb

require '/app/strategies/foo/bar/baz'
require '../../../../app/strategies/foo/bar/baz'
require 'baz'

都有相同的错误*** LoadError Exception: cannot load such file

任何建议,将不胜感激!

标签: ruby-on-railsminitest

解决方案


弄清楚了!

/test/strategies/foo/bar/baz_test.rb类定义需要是:

class Foo::Bar::BazTest < ActiveSupport::TestCase

推荐阅读