ruby-on-rails - 在 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
任何建议,将不胜感激!
解决方案
弄清楚了!
/test/strategies/foo/bar/baz_test.rb
类定义需要是:
class Foo::Bar::BazTest < ActiveSupport::TestCase
推荐阅读
- python - Python:如何从子进程的标准输出流式传输
- java - 声明数组类变量的合适方法?
- directory - 将 Drupal 站点移动到新文件夹或 Public_Html
- reactjs - 是否可以在另一个自定义挂钩中使用从一个自定义挂钩返回的值?
- java - 无法弄清楚为什么对象的 ArrayList 没有正确排序
- python - “AttributeError:模块 'django.contrib.auth.views' 没有属性 'password_reset'” urls.py 中的错误
- c - 输入 10x10 字符表,但无法正确将其分配给数组
- reactjs - 如何根据用户所在的路径返回 jsx
- pandas - 熊猫对子字符串或正则表达式的抱怨
- c++ - c++ struct of struct的向量