Unit test error: field ... doesn't have a default value

Hello!

here is my unit test:

require 'test_helper'

class UsuarioTest < ActiveSupport::TestCase
  # Replace this with your real tests.
  #test "the truth" do
    #assert true
  #end

  def test_salvar
    usuario = Usuario.new
    assert usuario.save
  end

  def test_dois
    assert true
  end
end

  1) Error:
test_dois(UsuarioTest):
ActiveRecord::StatementInvalid: Mysql::Error: Field 'usuario_id' doesn't
have a
default value: INSERT INTO `albums` (...

  2) Error:
test_salvar(UsuarioTest):
ActiveRecord::StatementInvalid: Mysql::Error: Field 'usuario_id' doesn't
have a
default value: INSERT INTO `albums` (...

2 tests, 0 assertions, 0 failures, 2 errors

The relationship is: Usuario has_many :albums

1) Error:
test_dois(UsuarioTest):
ActiveRecord::StatementInvalid: Mysql::Error: Field 'usuario_id' doesn't
have a
default value: INSERT INTO `albums` (...

This is saying 'I tried to insert the fixtures you defined but mysql
didn't like the data you tried to insert'

Fred

Thanks Fred!

I didn't understand why it inserts an album because an Usuario can or
can not have an Album. :confused:

I am not sure from your reply whether you still have a problem, if you
do then the problem may be a syntax error in one of your fixture
files.

Colin

Thanks Colin and sorry that I was not clear. I already fixed the
fixtures.

But one thing is strange.
usuarios.yml
leandro:
  nome: Leandro
  email: le@le.com
  data_nascimento: 2009-05-25

albums.yml
funk:
  nome: funk
  foto: funk.jpg
  usuario: leonardo

There is no Usuario "leonardo", but the Album "funk" is saved anyway.
usuario_test.rb
... def test_new() assert Usuario.new; end ...

Colin Law wrote:

Thanks Colin and sorry that I was not clear. I already fixed the
fixtures.

But one thing is strange.
usuarios.yml
leandro:
nome: Leandro
email: l...@le.com
data_nascimento: 2009-05-25

albums.yml
funk:
nome: funk
foto: funk.jpg
usuario: leonardo

There is no Usuario "leonardo", but the Album "funk" is saved anyway.

your validations aren't run when inserting fixtures. in addition the
foxy fixtures stuff that means that you can write leonardo to mean '
the users fixtures with label usario' does no validation of the label:
it just generates the id that it knows would be used if there was one

Fred