Я пишу свой первый тест в рельсах, и у меня есть метод, который проверяет, является ли имя, переданное через объект животного, действительным. (Возвращает имя, если оно действительно, или nil
, если нет)
animal_verifier.rb
# frozen_string_literal: true
class AnimalVerifier
def initialize(last_sync_at, force_sync_ids)
@last_sync_at = last_sync_at
@force_sync_ids = force_sync_ids
end
def valid_animals
animals.each do |animal|
if !is_valid_animal(animal.name)
Rails.logger.info("Invalid animal name")
next
end
end
end
def is_valid_animal(animal_name)
animal = AnimalFinder.find(animal_name)
end
end
animal_verifier_test.rb
require 'test_helper'
class AnimalVerifierTest < ActiveSupport::TestCase
test "valid animal" do
valid_animal = @is_valid_animal.send("Beluga")
assert valid_animal?, "valid animal"
puts valid_animal.errors unless valid_animal.errors.empty?
end
test "invalid animal" do
valid_animal = @is_valid_animal.send("Puddle")
assert valid_animal?, "invalid animal"
puts valid_animal.errors unless valid_animal.errors.empty?
end
end
Когда я запускаю этот тест, яполучить ошибку:
NoMethodError: NoMethodError: undefined method `Beluga' for nil:NilClass
Значит ли это, что у меня нет класса для AnimalVerifier
? Я просто хочу проверить конкретный метод.