第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

Django 測試正在使用 manage.py 測試應(yīng)用程序,但不適用于 manage.py 測試

Django 測試正在使用 manage.py 測試應(yīng)用程序,但不適用于 manage.py 測試

藍(lán)山帝景 2022-01-05 10:26:52
我寫了一個(gè)測試用例來檢查我需要一個(gè)教師對象的視圖。class ShowTeacherViewTest(TestCase):@classmethoddef setUpTestData(cls):    gender = Gender.objects.create(gender='Male')    gender_id = gender.id    Teacher.objects.create(            gender_id=gender_id,            first_name='Maria',            last_name='Santana',)def test_view_uses_correct_template(self):    teacher = Teacher.objects.first().id    response = self.client.get(reverse('get_student'), {'teacher': teacher})    self.assertEqual(response.status_code, 200)當(dāng)我運(yùn)行“manage.py test app”時(shí),一切正常。如果我正在運(yùn)行“manage.py test”,這個(gè)錯(cuò)誤就會消失: self.model._meta.object_name students.gender.Gender.DoesNotExist: Gender matching query does not exist.由于一些外鍵,我也在其他模型測試中使用這些教師對象。那么,在每次測試之前是否有可能或需要重置 test_db?
查看完整描述

1 回答

?
qq_遁去的一_1

TA貢獻(xiàn)1725條經(jīng)驗(yàn) 獲得超8個(gè)贊

回溯顯示此行失?。?/p>

gender_male = Gender.objects.get(pk=1)

您通常不應(yīng)該在代碼或測試中硬核主鍵。當(dāng)您使用 運(yùn)行所有測試時(shí)manage.py test,對象是使用不同的主鍵創(chuàng)建的,因此get(pk=1)失敗。

如果您確實(shí)需要在代碼中對 pk 進(jìn)行硬編碼,則需要在測試類中使用正確的 pk 創(chuàng)建對象:

gender = Gender.objects.create(pk=1, gender='Male')

但是,更好的解決方法是更改代碼,使其不使用硬編碼的 pk。

gender_male = Gender.objects.get(gender='Male')


查看完整回答
反對 回復(fù) 2022-01-05
  • 1 回答
  • 0 關(guān)注
  • 161 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號