DjangoでコードテストをViewクラスに対して行う

基本的なコードの書き方は同じだが、Viewの場合は、URL経由でおこなう必要がある。

テストコードの基本的な書き方は、こちらを参照

REST APIでおこなっていることを前提とした例は次のようになる。

GETメソッド

from django.test import TestCase,Client

def test_TestView(self):
        response = self.client.get(
            path='/api/[path]/',
            content_type='application/json',
        )

この場合は、getメソッドを利用して、pathに対してリクエストをおこなっている。

パラメータを付けたい場合は次のようにする。

from django.test import TestCase,Client

def test_TestView(self):
        response = self.client.get(
            path='/api/[path]/',
            content_type='application/json',
            data={'[key]' : '[value]'},
        )

dataに対してディクショナリ型で設定をする。

POSTメソッド

from django.test import TestCase,Client

def test_TestView(self):
        response = self.client.post(
            path='/api/[path]/',
            content_type='application/json',
            data={'[key]' : '[value]'},
        )

dataに対してポストするデータを設定するが、本件の前提である、REST APIの場合は、jsonデータを設定するのが望ましい。

また、通常のリクエストの際も、ディクショナリ型を設定することでデータを送信することが可能。

レスポンスのデータ

リクエスト後のレスポンスで、受け取った内容から、返却されたjsonを取得する場合は、 response.data で取得することができる。

その際、すでにディクショナリーの型になっているため、ディクショナリとして処理が可能。