UI testing / End to End testing
처음부터 끝까지 (db, 프론트, 백 다 연결시켜서) 직접 테스트해보는 것, 사람이 하는 것이기 때문에 느리고 비용이 많이 들지만 가장 직관적.
Integration testing
해당 서버만 테스트하는 것. (백엔드면 백엔드만, 프론트엔드면 프론트엔드만)
Unit test
코드를 테스트하는데 테스트하는 가장 작은 단위(함수)를 테스트
from django.test import TestCase
from django.test import Client
class UserTest(TestCase):
def setUp(self):
# 목 데이터를 만들기 위한 메소드
def test_nickname_check(self):
# 실제 테스트 로직을 위해 생성되는 메소드(test_라고 시작하는 메소드는 모두 테스트 메소드가 됨)
def tearDown(self):
# 데이터 모델을 클리어하기 위한 메소드
실행방법
# manage.py가 있는 위치에서
python manage.py test user
from django.test import Client
client = Client()
response = client.get('url', {'json': 'json', 'json data': 'json data'})
from django.test import Client
client = Client()
response = client.post('url', data={'json': 'json'})
아래처럼 response에 접근 가능
response.content
reponse.context['name']
content_type = 'application/json'일 때 .json.loads(), json()[]형태로 가져올 수 있음
response.json.loads()
response.json()['name']
참고 사이트 : https://wikidocs.net/16107
메소드 | 설명 |
---|---|
assertEqual(a, b) | a == b |
assertNotEqual(a, b) | a != b |
assertTrue(a) | bool(a) is True |
assertFalse(a) | bool(a) is False |
assertIs(a, b) | a is b |
assertIsNot(a, b) | a is not b |
assertIsNone(a) | a is None |
assertIsNotNone(a) | a is not None |
assertIn(a, b) | a in b |
assertNotIn(a, b) | a not in b |