我的Rails 7,Ruby3.1App有一个简单的测试失败了。我不明白为什么。
在我的应用程序中,我添加了一个支持目录,标签为stuff,其中包含一些GraphQL代码。所以在我的测试中,我想做一个GraphQL.test(foo:"me",bar:"you")。
app/stuff/graphql.rb在我的inflections.rb初始化器中,我教我想要的拐点。
ActiveSupport::Inflector.inflections(:en) do |inflect|
inflect.acronym 'GraphQL'
end在我的application.rb中,我告诉Zeitwerk我有东西要处理,而rake任务zeitwerk:check说一切都很好。
graphql.rb有一个简单的测试功能:
module GraphQL
def self.test(foo:, bar:)
puts "We got a #{foo} and a #{bar}"
end
end但是我的测试会运行,当测试这段代码时,测试会在没有测试方法的GraphQL上失败。
我对自动加载和急切的加载感到困惑,以及为什么我的测试似乎无法遵循这里的简单设置。
发布于 2022-01-10 14:52:20
这似乎是由于Zeitwerk的命名空间问题。在我的测试中,我有一个需求,它在不同的对象(即GraphQL )上引入了相同的名称空间。因此,在测试中,找不到命名的方法,因为返回的对象在错误的名称空间中。我删除了需求,测试按预期完成,没有错误。
https://stackoverflow.com/questions/70647450
复制相似问题