죄송 비품,하지만 난 간단한 몇이 힘든 시간 나는 한 줄에 부탁 해요 무엇을 증류하려고 ...단위 테스트 낯선은 막연한 질문 제목
가 있어요 레일 (3.1) 모델 rails g scaffold
통해 생성 된, 내가 단위 테스트하려고합니다. 그들은 다음과 같은 방법으로 정의됩니다
class ModelA < ActiveRecord::Base
validates_presence_of :field1, :field2
validates_uniqueness_of :field1
end
class ModelB < ActiveRecord::Base
validates_presence_of :field1
validates_uniqueness_of :field1
end
나는 각 모델에 대한 설비의 몇 가지있다, 즉 :
model_a_no_field1:
field2: test
model_a_no_field2:
field1: test
model_a_ok:
field1: test
field2: test
및
model_b_no_field1:
model_b_ok:
field1: test
내 단위 테스트는 이러한 검증을 테스트하는
:
class ModelATest < ActiveSupport::TestCase
test "field1 should be present" do
assert !model_as(:model_a_no_field1).valid?
end
test "field2 should be present" do
assert !model_as(:model_a_no_field2).valid?
end
test "field1 should be unique" do
model_a = model_as(:model_a_ok)
model_a.save
assert !model_as(:model_a_ok).valid?
end
end
이들 테 모두 올바르게 통과해야합니다. 그러나 ModelB
에 대한 내 비슷한 단위 테스트 : 두 번째 테스트에
class ModelBTest < ActiveSupport::TestCase
test "field1 should be present" do
assert !model_bs(:model_b_no_field1).valid?
end
test "field1 should be unique" do
model_b = model_bs(:model_b_ok)
model_b.save
assert !model_bs(:model_b_ok).valid?
end
end
실패는 (고유성을 테스트).
나는 이것이 model_b_no_field1
에 대한 빈 YAML 조명기와 관련이 있다고 확신하지만 잘 모르겠습니다. 테스트 방법의 본문을
test "field1 should be unique" do
model_b = model_bs(:model_b_ok)
model_b.save
model_b2 = ModelB.new
assert !model_b2.valid?
end
으로 대체하여 테스트를 통과시킬 수 있습니다. 그러나 어떤 일이 벌어지고 있는지 이해하고 싶습니다.
공정한 점, 감사합니다! – kfb