ユニットテストとして、self.client.postメソッドを利用して、DBへの登録を行っておりますが、
登録の確認ができませんでした。
下記に確認したことを列挙しますが、これ以上の検証が個人では難しく、ご教示をお願いしたく存じます。
【確認したこと】
- ブラウザから同じ内容(CSRFトークンを除く)のリクエストを送った場合には正常に登録が確認できる
- JSONにCSRFトークンが含まれていないことによるエラーではない模様
→戻ってきたステータスが403エラーではなく302であったため、CSRFトークンが含まれないことによるエラーではないことを確認
→念の為に@csrf_exemptでCSRF対策を除いて検証したが、結果は変わらず
- JSONの形式が不正でないかを確認
→ツールで確認して問題ないことを確認
- POST通信先のアドレスが不正でないことを確認
→ブラウザのデベロッパーツールで登録時のアドレスと相違ないことを確認
from django.contrib.auth import get_user_model from django.test import TestCase from django.urls import reverse_lazy from django.views.decorators.csrf import csrf_exempt from ..models import Clients # loginを前提とする処理用のテストクラス class LoggedInTestCase(TestCase): def setUp(self): self.test_user = get_user_model().objects.create_user( username='test_user', email='test@test.com', password='password') self.client.login(email=self.test_user.email, password=self.test_user.password) class Test_ClientRegistrationView(LoggedInTestCase): @csrf_exempt def test_create_client_success(self): params = { "name": "顧客名", "name_kana": "フリガナ", "department": "部署", "industry":"", "capital":"", "postcode":"", "address":"", "phone_number":"", "email":"", "fax_number":"", "revenue":"", "profit":"", "number_of_employees":"", "remark":"" } response = self.client.post(reverse_lazy('client:registration'), params) # DBへの登録を検証 self.assertEqual(Clients.objects.filter(name='顧客名').count(), 1)
【エラーメッセージ】
DBへの登録を検証の箇所にて
AssertionError: 0 != 1
回答2件
あなたの回答
tips
プレビュー