Использование https://guides.rubyonrails.org/testing.html, чтобы научиться разрабатывать автоматизированные тесты.Я запустил rails db: test: prepare, а затем отредактировал значение по умолчанию ./test/model/user_test.rb
(у меня есть модель пользователя).Этот тест кажется очень простым, но я получаю следующую ошибку:
Mysql2 :: Ошибка: поле 'имя_экранов' не имеет значения по умолчанию
Это должно быть вернокак я просил, чтобы поле не было пустым, и я не хочу значение по умолчанию.Я хочу, чтобы значение было введено.Схема базы данных настроена таким образом.
Независимо от того, что я делаю, я получаю эту ошибку.Я попытался запустить тест контроллера по умолчанию, и он получил ту же ошибку.
Я прыгал, чтобы определить, что на самом деле делает этот тест, так как нет реального описания.Может быть, это недопустимый тест, просто какие-то строительные леса?
Тест на ошибку, не введенный в значение, безусловно, в конце концов мне нужен.Кажется, я не получаю нужную мне инструкцию из этого руководства, есть ли лучшее место для начала.
Я попробовал следующее:
@User = users.new
@User.screen_name = "Name"
...
@User.save
получил тот же результат, кажетсячто просто выполнение теста для этой модели пытается создать пустую запись в таблице, прежде чем я что-то сделаю.Это правда?Если да, то как мне справиться с этим и не предоставлять никаких значений по умолчанию.
Тест контроллера по умолчанию получает точно такой же результат.
. / Test / model / user_test.rb:
require 'test_helper'
class UserTest < ActiveSupport::TestCase
test "the truth" do
assert true
end
end
MySQL Table Desc:
mysql> desc users;
+-----------------+--------------+------+-----+---------+--------------
| Field | Type | Null | Key | Default | Extra |
+-----------------+--------------+------+-----+---------+--------------
| id | bigint(20) | NO | PRI | NULL | auto_increment |
| screen_name | varchar(255) | NO | | NULL | |
| email | varchar(255) | NO | | NULL | |
| password_digest | varchar(255) | NO | | NULL | |
| created_at | datetime | NO | | NULL | |
| updated_at | datetime | NO | | NULL | |
+-----------------+--------------+------+-----+---------+--------------
Я не знал, чего ожидать, но не ожидал того, что получил.За прошедшие годы я научился начинать с дефолта и наращивать.
Запуск через предварительный загрузчик Spring в процессе 15156 Параметры запуска: --seed 50091
Запуск:
Ошибка: UserTest # test_the_truth: Mysql2 :: Ошибка: Поле 'screen_name 'не имеет значения по умолчанию bin / rails test test / models / user_test.rb: 4 Завершено за 0.006803 с, 146.9987 циклов / с, 0.0000 утверждений / с.1 прогоны, 0 подтверждений, 0 отказов, 1 ошибок, 0 пропусков