2015-01-26 2 views
1
require 'test_helper' 

class UserTest < ActiveSupport::TestCase 

    def setup 
    @user = User.new(name: "Example User", email: "[email protected]") 
    end 


    test "should be valid" do 
    assert @user.valid? 
    end 


    test "name should be present" do 
    @user.name = "" 
    assert_not @user.valid? 
    end 


    test "email should be present" do 
    @user.email = "  " 
    assert_not @user.valid? 
    end 


    test "name should not be too long" do 
    @user.name = "a" *51 
    assert_not @user.valid? 
    end 


    test "email should not be too long" do 
    @user.email = "a" * 244 + "@example.com" 
    assert_not @user.valid? 
    end 


test "email validation should accept valid addresses" do 
    valid_addresses = %w[[email protected] [email protected] [email protected] 
         [email protected] [email protected]] 
    valid_addresses.each do |valid_address| 
     @user.email = valid_address 
     assert @user.valid?, "#{valid_address.inspect} should be valid" 
    end 

    test "email validation should reject invalid addresses" do 
    invalid_addresses = %w[[email protected],com user_at_foo.org [email protected] 
          [email protected]_baz.com [email protected]+baz.com] 
    invalid_addresses.each do |invalid_address| 
     @user.email = invalid_address 
     assert_not @user.valid?, "#{invalid_address.inspect} should be invalid" 
     end 


test "email addresses should be unique" do 
    duplicate_user = @user.dup 
    duplicate_user.email = @user.email.upcase 
    @user.save 
    assert_not duplicate_user.valid? 
    end 

end 
end 
end 

안녕, 나는 프로그래밍에 새로 온 사람과 RailsTutorial 6 장 잘못된 번호 (2 일)

I C9.io

를 통해 코딩하면서 레일 자습서 온라인 자습서를 데리러 노력하고 있어요 6 장에서 멈췄다. (Listing 6.27에서 멈췄다.) $ bundle exec rake test를 할 때 다음과 같은 에러 메시지가 나왔다. 튜토리얼은 내가 그것을 통과시켜야한다고 말한다 (녹색). 내가 무엇이 잘못되었는지 알아 내려고 노력하면서 도움을 주셔서 감사합니다. 미리 감사드립니다!

Started 

ERROR["test_email_validation_should_accept_valid_addresses", UserTest, 0.212780915] 
test_email_validation_should_accept_valid_addresses#UserTest (0.21s) 
ArgumentError:   ArgumentError: wrong number of arguments (1 for 2) 
      test/models/user_test.rb:47:in `test' 
      test/models/user_test.rb:47:in `block in <class:UserTest>' 
     test/models/user_test.rb:47:in `test' 
     test/models/user_test.rb:47:in `block in <class:UserTest>' 

    12/12: [=====================================================] 100% Time: 00:00:00, Time: 00:00:00 

Finished in 0.72719s 
12 tests, 24 assertions, 0 failures, 1 errors, 0 skips 
+0

어떤 줄이 47 번째입니까? –

답변

5

는 들여 쓰기를 수정 한 후 오류 소스는 분명해진다 :

require 'test_helper' 

class UserTest < ActiveSupport::TestCase 

    def setup 
    @user = User.new(name: "Example User", email: "[email protected]") 
    end 


    test "should be valid" do 
    assert @user.valid? 
    end 


    test "name should be present" do 
    @user.name = "" 
    assert_not @user.valid? 
    end 


    test "email should be present" do 
    @user.email = "  " 
    assert_not @user.valid? 
    end 


    test "name should not be too long" do 
    @user.name = "a" *51 
    assert_not @user.valid? 
    end 


    test "email should not be too long" do 
    @user.email = "a" * 244 + "@example.com" 
    assert_not @user.valid? 
    end 


    test "email validation should accept valid addresses" do 
    valid_addresses = %w[[email protected] [email protected] [email protected] [email protected] [email protected]] 
    valid_addresses.each do |valid_address| 
     @user.email = valid_address 
     assert @user.valid?, "#{valid_address.inspect} should be valid" 
    end 

    test "email validation should reject invalid addresses" do 
     invalid_addresses = %w[[email protected],com user_at_foo.org [email protected] 
         [email protected]_baz.com [email protected]+baz.com] 
     invalid_addresses.each do |invalid_address| 
     @user.email = invalid_address 
     assert_not @user.valid?, "#{invalid_address.inspect} should be invalid" 
     end 


     test "email addresses should be unique" do 
     duplicate_user = @user.dup 
     duplicate_user.email = @user.email.upcase 
     @user.save 
     assert_not duplicate_user.valid? 
     end 

    end 
    end 
end 

당신은하지 않습니다 가까운 블록 test에 전달. 다음과 같아야합니다.

require 'test_helper' 

class UserTest < ActiveSupport::TestCase 

    def setup 
    @user = User.new(name: "Example User", email: "[email protected]") 
    end 


    test "should be valid" do 
    assert @user.valid? 
    end 


    test "name should be present" do 
    @user.name = "" 
    assert_not @user.valid? 
    end 


    test "email should be present" do 
    @user.email = "  " 
    assert_not @user.valid? 
    end 


    test "name should not be too long" do 
    @user.name = "a" *51 
    assert_not @user.valid? 
    end 


    test "email should not be too long" do 
    @user.email = "a" * 244 + "@example.com" 
    assert_not @user.valid? 
    end 


    test "email validation should accept valid addresses" do 
    valid_addresses = %w[[email protected] [email protected] [email protected] [email protected] [email protected]] 
    valid_addresses.each do |valid_address| 
     @user.email = valid_address 
     assert @user.valid?, "#{valid_address.inspect} should be valid" 
    end 
    end 

    test "email validation should reject invalid addresses" do 
    invalid_addresses = %w[[email protected],com user_at_foo.org [email protected] 
         [email protected]_baz.com [email protected]+baz.com] 
    invalid_addresses.each do |invalid_address| 
     @user.email = invalid_address 
     assert_not @user.valid?, "#{invalid_address.inspect} should be invalid" 
    end 
    end 

    test "email addresses should be unique" do 
    duplicate_user = @user.dup 
    duplicate_user.email = @user.email.upcase 
    @user.save 
    assert_not duplicate_user.valid? 
    end 
end 
+0

@Zac이 내 답변에 도움이 되었습니까? –

+0

감사합니다 !!!!! 당신은 내 인생의 시간을 절약했습니다 !! 홍콩에 들르면 한 잔 하시죠! – Zac

+0

@Zac 기쁩니다. 제 대답을 받아 들였습니다. :) –