在Rails的Minitest测试文件中加载命名空间模块

问题描述 投票:0回答:1

使用最小的5.1滚动5.2.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-rails minitest
1个回答
0
投票

想通了!

/test/strategies/foo/bar/baz_test.rb类定义必须是:

class Foo::Bar::BazTest < ActiveSupport::TestCase
© www.soinside.com 2019 - 2024. All rights reserved.