2015-06-08 8 views
0

Я надеюсь, что кто-то может мне помочь. Я собираюсь создать стандартное приложение для блога как часть обучения Rails и решил включить Authlogic для аутентификации/авторизации.Authlogic: Functional Test Fail Validation

По какой-то причине - и я не могу за жизнь мне понять это - следующий функциональный тест теперь стенает, что я предполагаю, что причины проверки:

user.rb

class User < ActiveRecord::Base 

    acts_as_authentic do |c| 
    c.validates_length_of_password_field_options minimum: 6 
    end 

    has_many :articles, dependent: :destroy 
    has_many :comments, through: :articles 

    enum role: [:commenter, :contributer, :admin] 

end 

users_controller_test.rb

class UsersControllerTest < ActionController::TestCase 

    def setup 
    @user = users(:ben) 
    activate_authlogic 
    end 

    test "should create user with default commenter role" do 
    assert_difference 'User.count', 1 do 
     post :create, user: { username: "Elenor Smalls", email: "[email protected]", password: "foobar", password_confirmation: "foobar", dob: "2000-01-01", gender: "Female" } 
    end 
    assert User.find_by(email: "[email protected]").commenter?, "User is not a Commenter." 
    assert_redirected_to root_url 
    end 

Выход

Run options: --seed 48600 

# Running: 

......F................... 

Finished in 1.172103s, 22.1824 runs/s, 33.2735 assertions/s. 

    1) Failure: 
    UsersControllerTest#test_should_create_user_with_default_commenter_role 
    [/Users/Donovan/developer/webdevelopment/workspace/articles/test/controllers/users_controller_test.rb:11]: 
    "User.count" didn't change by 1. 
    Expected: 4 
    Actual: 3 

    26 runs, 39 assertions, 1 failures, 0 errors, 0 skips 

Из того, что я могу сказать, СТОЛБ СОЗДАТЬ является неисправной линии, как, когда все валидация через Authlogic удалены или переопределены, она проходит. Будем очень благодарны любой помощи.

Спасибо.

+2

Показать код 'users_controller' – rick

ответ

0

Rick - вы гений. Мне недоставало :username как часть user_params в контроллере. Спасибо за подсказку.