ruby-on-rails - NameError:使用带有 factory_bot_rails 的 minitest 的 UserTest 的未定义局部变量或方法“用户”
问题描述
:user
我在我的工厂中有一个定义,但是build
, create
,并且build_stubbed
由于某种原因抛出了一个未定义的变量方法。我正在使用 minitest 和 factory_bot_rails。
这是我的测试:
require 'test_helper'
class UserTest < Minitest::Test
def setup
user = FactoryBot.create(:user)
end
def test_valid_setup
assert_equal user.firstname = "ss"
end
end
这是我的工厂:
FactoryBot.define do
factory :user do
email Faker::Internet.email
firstname "ss"
lastname Faker::Name.last_name
username Faker::Pokemon.name
website Faker::Internet.domain_name
end
end
我的 test_helper 中也有这个:
class Minitest::Unit::TestCase
include FactoryBot::Syntax::Methods
end
我的错误输出是:
Error:
UserTest#test_valid_setup:
NameError: undefined local variable or method `user' for #<UserTest:0x007fe1e87d9908>
test/models/user_test.rb:9:in `test_valid_setup'
是什么赋予了?
解决方案
使用@user
我的变量并用修复的问题替换=
in 。根据文档,此方法需要 2-3 个参数。assert_equal user.firstname = "ss"
,
正确的语法是
def test_valid_setup
assert_equal @user.firstname, "ss"
end
推荐阅读
- css - 如何使用 CSS 或 SVG 连接 ion-grid 中的三个正方形?
- powerbi - DAX移动平均线不起作用
- angular - ChangeDetectionStrategy.OnPush 打破了 ControlValueAccessor 的禁用状态
- c# - 动态更改连接字符串以创建数据库并将创建的文件存储在特定文件夹中
- c - 使用时间戳计数器和 clock_gettime 进行缓存未命中
- python - 为什么 FFT 结果显示单个频率样本的 2 个非零幅度?
- jira - 使用解决日期返回特定日期的问题状态的 Jira 查询
- amazon-web-services - AWS CloudFormation:此区域(伦敦)不支持 CREATE_FAILED DBSecurityGroup
- javascript - Google AMP:如何在 AMP 中进行无限滚动?
- ansible - ansible playbook 默认与管理员用户连接