لقد واجهت للتو مجموعة من الاختبارات الفاشلة بأخطاء مثل هذه:
ActiveRecord::RecordInvalid:
فشلت المصادقة: الاسم مأخوذ بالفعل
ويبدو أن هذه هي المشكلة:
fab!(:the_group) { Fabricate(:group) }
لقد نجحت كل هذه الأمور حتى وقت قريب. رأيت هذا في بعض الإضافات الأخرى التي كنت أعمل عليها، وأعتقد أنني تمكنت من تعيين اسم عشوائي بنفسي، لكن هذه نجحت، على ما أعتقد، حتى يوم أمس.
هل تغير شيء ما، أم أنني فعلت شيئًا غبيًا عن طريق الخطأ؟
تحرير: بمساعدة Claude وروبوت مساعد Discourse، حاولت استبدال fab أعلاه بـ
Fabricator(:the_group) do
name { sequence(:group_name) { |i| "Test Group #{i}" } }
end
لكنني لم أتمكن من معرفة كيفية القيام بذلك تمامًا.
ثم استخدمت
let(:the_group) { Fabricate(:group) }
بدلاً من !fab أعلاه وهذا قلل عدد حالات الفشل من 12 إلى 1، لكنه لا يزال يفشل مع
1) Pfaffmanager::ServersController servers admin can get servers owned by a group
Failure/Error: let(:the_group) { Fabricate(:group) }
ActiveRecord::RecordInvalid:
Validation failed: Name has already been taken
لا أعتقد أن أي شيء حول هذه الاختبارات قد تغير منذ يوم أمس الساعة 10:30 صباحًا بتوقيت وسط أمريكا عندما قمت بآخر تثبيت.
لقد تراجعت إلى تثبيت سابق والآن يفشل مع
1) Pfaffmanager::ServersController servers includes groups that the user is in
Failure/Error: let(:the_group) { Fabricate(:group) }
ActiveRecord::RecordInvalid:
Validation failed: Name has already been taken
وقد قمت بتشغيله مرة أخرى دون إجراء أي تغييرات والآن يفشل على
1) Pfaffmanager::ServersController servers can update group id if group owner
Failure/Error: let(:the_group) { Fabricate(:group) }
ActiveRecord::RecordInvalid:
Validation failed: Name has already been taken
لذلك يبدو أنه يفشل في اختبار واحد، وهو عشوائي؟