كيف المواصفات من "للقراءة فقط" سلوك النموذج ؟
-
22-08-2019 - |
سؤال
على سبيل المثال, دعونا نقول لدي Question
نموذج يحتوي على منطقية المجالات answered
و closed
.كيف يمكنني اختبار سلوك هذا سؤال should be read only when marked as answered
باستخدام RSpec?هذا يبدو أنه سلوك النموذج ، ولكن أنا غير متأكد من كيفية أفضل اختبار.يجب أن تستخدم من قبل مرشح لهذا السلوك ، مضيفا خطأ تقول أنه لا يمكنك تعديل أجاب على السؤال ؟ أو هل هناك طريقة أفضل للقيام بذلك ؟ أنا فقط التعلم RSpec و BDD.
المحلول
يعتمد على كيفية كنت في حاجة إليها العمل ، ولكن...
describe Question do
it "should be read only when marked as answered" do
question = Question.new(:title => 'old title')
question.answered = true
question.save
# this
lambda {
question.title = 'new title'
}.should raise_error(ReadOnlyError)
# or
question.title = 'new title'
question.save
question.title.should == 'old title'
# or
quesiton.title = 'new title'
question.save.should be_false
end
end
أو ربما كنت تريد الخطأ أن تثار على حفظ ؟ أو ربما لا يوجد خطأ وهو فقط بصمت لا يغير القيمة ؟ الأمر متروك لكم كيف كنت ترغب في تنفيذ ذلك ، ولكن المنهجية هو نفسه.
- الإعداد الأشياء الخاصة بك في حالة كنت تريد أن المواصفات لهم
- تأكد من الكائنات في تلك الدولة لا ما كنت تتوقع
حتى إنه أجاب على السؤال ، ثم انظر إذا كان يمكنك تغيير البيانات.إذا كنت لا تستطيع ، ثم المواصفات مرت.الأمر متروك لكم كيف كنت تريد سلوك النموذج الخاص بك إلى العمل.و الشيء العظيم حول BDD هو رأيك حول هذه الواجهة الأولى منذ لديك فعلا استخدام الكائنات API من أجل المواصفات ذلك.