gpt4 book ai didi

ruby-on-rails - 为什么我的 Rspec 集成测试找不到我的模块?

转载 作者:行者123 更新时间:2023-12-04 05:18:29 25 4
gpt4 key购买 nike

我希望能够调用login_as_adminlogin_as_customer在任何规范文件中的任何位置。

我有一个完整的集成规范目录:

/spec/features/area_spec.rb
/spec/features/assignment_spec.rb
/spec/features/etc…

每一个都以:
require 'spec_helper'
require 'rspec_macros'

我也有 /spec/spec_help.rb , 包括:
ENV["RAILS_ENV"] ||= 'test'
require File.expand_path("../../config/environment", __FILE__)
require 'rspec/rails'
require File.dirname(__FILE__) + "/rspec_macros"

我有 /spec/rspec_macros.rb , 包括:
module RspecMacros
def login_as_admin
etc…
end
def login_as_customer
etc…
end
end

那么,为什么在 Rspec 命令行中会出现以下错误?
 Failure/Error: login_as_customer
NameError:
undefined local variable or method `login_as_customer' for #<RSpec::Core::ExampleGroup::Nested_1::Nested_2:0x007fd99f471f50>

最佳答案

我相信您要么需要在规范助手中创建这些功能,要么在测试中包含这些模块。

要包含模块,您可以执行以下操作:

module RspecMacros 
extend ActiveSupport::Concern

included do
def login_as_customer
...
end
end
end

require 'rspec_macros'
describe MyCoolTest do
include RspecMacros
end

您可能会发现让它们在规范助手中起作用更容易。您可以添加:
def login_as_customer
....
end

到 spec_helper.rb 的末尾

关于ruby-on-rails - 为什么我的 Rspec 集成测试找不到我的模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13945164/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com