Rails note Rspec test
Очень полезной штукой оказались custom messages for expectations.
Очень часто приходится проверять равенство сразу нескольких полей сразу, как-то так:
[:length, :width, :weight].each{|attr| val1[attr].should == val2[attr] }
то при ошибке в консоле вы увидите что-то вроде:
Failure/Error: [:length, :width, :weight].each{|attr| val1[attr].should == val2[attr] }
expected: 1.0
got: 1.9 (using ==)
то есть нипанятна вообще ничего, какое поле не совпало — хз (диагноз хоть и ясен, но детали неизвестны)
Но можно сделать и красиво, вот так:
[:length, :width, :weight].each{|attr| val1[attr].should eq(val2[attr]), "#{attr} attribute is incorrect #{val1[attr]} != #{val2[attr]}"
тогда консоль нам выдаст красивый, понятный текст вроде:
Failure/Error: [:length, :width, :weight].each{|attr| val1[attr].should eq(val2[attr]), "#{attr} attribute is incorrect #{val1[attr]} != #{val2[attr]}"
width attribute is incorrect 1.5 != 1.2
зы. заодно стало ясно зачем нам == и eq() :)