나는 시험 사용하여 내 첫 테스트를 쓰고 있어요 : 단위 및 진작을, 그래서 이것은 나의 부분에 간단한 오해 될 수 있지만 검증을 포함하지 않는 페이지 모델을 제공하고, 테스트 :왜이 테스트 결과가 거꾸로 있습니까?
#test/unit/page_test.rb
require 'test_helper'
class PageTest < ActiveSupport::TestCase
should belong_to(:site)
should validate_presence_of(:slug)
end
두 번째 예상대로 시험 (유효성 검사는 모델에 없다 주어진) 실패 :
# Running tests:
[2/2] PageTest#test: Page should require slug to be set. = 0.02 s
1) Failure:
test: Page should require slug to be set. (PageTest) [/Users/Matt/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/gems/shoulda-context-1.1.1/lib/shoulda/context/context.rb:339]:
Did not expect errors to include "can't be blank" when slug is set to nil, got error:
Finished tests in 0.115436s, 17.3256 tests/s, 17.3256 assertions/s.
2 tests, 2 assertions, 1 failures, 0 errors, 0 skips
오류 메시지 Did not expect errors to include "can't be blank" when slug is set to nil
거꾸로 보인다 그러나. 읽을 필요가 없습니다 : Expected errors to include "can't be blank"
왜냐하면 내가 존재하는지 테스트했기 때문에 슬러그가 0 일 때 슬러그는 "비워 둘 수 없습니다"라는 오류로부터의 오류를 기대할 수 있기 때문입니다.
유효성 검사를 추가하면 테스트가 통과하지만 처음에는 올바르게 테스트하지 못합니다.
왜 첫 번째 테스트가 통과합니까? 내 페이지 모델에 belongs_to
연결이 없습니다.
테스트가 안됐다!
어떤 객체에 '해야'하는 메시지가 표시됩니까? 테스트에 컨텍스트와 설명이 있어야하지 않습니까? '절'절은 RSpec이 아닙니까? –
아니요, Test :: Unit with shoulda - RSpec을 사용하기 전에 "Rails 방식"을 배우는 것이 가장 좋습니다. – Matt