Как да тествам модела с Minitest и без база данни?

Използвам rails 4.2.1 & ruby ​​2.2.1 в моето приложение. Така автоматично се добавя minitest, който е от версия 5.1. В приложението ми няма база данни. С база данни мога да тествам модела. Как да тествам модела без база данни?

Създадох потребителски модел:

class User
  include ActiveModel::Model
end

потребители.yml:

one:
  firstName: Avi
  email: [email protected]

user_test.rb:

require 'test_helper'

class UserTest < ActiveSupport::TestCase      
  test "the truth" do 
    user = users(:one)
    assert true
  end
end

Тук получавам грешката: Undefined methods users. Получавам правилни данни, ако базата данни съществува. Дори се опитах да добавя include ActiveModel::Lint::Tests, все още получавам същата грешка. Може ли някой да ми помогне по въпроса?

Благодаря


person Avinash    schedule 04.09.2015    source източник


Отговори (1)


Класът ActiveSupport::TestCase очаква, че връзката с база данни е активна. Вероятно искате да превключите това на Minitest::Test, но това означава, че не можете да използвате метода users fixture за извличане на запис от базата данни.

require 'test_helper'

class UserTest < Minitest::Test
  def test_sanity
    user = User.new
    user.first_name = "Avi"
    user.email = "[email protected]"
    assert user
  end
end
person blowmage    schedule 04.09.2015
comment
Малко по-сложно, намирам. Трябва ръчно да импортирате minitest, а не rails/test_help по подразбиране във вашия test_helper.rb... Ще докладвам повече, когато го подредя... - person ericpeters0n; 21.04.2016