NameError: неопределенная локальная переменная или метод 'user' для UserTest с использованием minitest с factory_bot_rails - PullRequest
0 голосов
/ 10 мая 2018

У меня есть :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'

Что дает?

1 Ответ

0 голосов
/ 10 мая 2018

Использование @user для моей переменной и замена = в assert_equal user.firstname = "ss" на , устранили проблему. Согласно документам , этот метод ожидает 2 - 3 аргумента.

Правильный синтаксис:

def test_valid_setup
 assert_equal @user.firstname, "ss"
end
...