반응형
Notice
Recent Posts
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Today
Total
관리 메뉴

오식랜드

[Django] 테스트 주도 개발 본문

dev-log/python

[Django] 테스트 주도 개발

개발하는 오식이 2023. 10. 18. 14:32
반응형

테스트 코드 위치

: myApp/tests.py

테스트 명령어

Beautifulsoup4 필요

pip install beautifulsoup4
python manage.py test

테스트 코드

  1. 같은지 / 같지 않은지
  • assertEqual(a, b) : a == b
  • assertNotEqual(a, b) : a ≠ b
  1. 참인지 / 거짓인지
  • assertTrue(a) : a == True
  • assertFalse(a) : a == False
  1. 맞는지 / 맞지 않은지
  • assertIs(a, b) : a is b
  • assertIsNot(a, b) : a is not b
  1. None인지 / None이 아닌지
  • assertIsNone(a) : a is None
  • assertIsNotNone(a) : a is not None
  1. 안에 있는지 / 없는지
  • assertIn(a, b) : a in b
  • assertNotIn(a, b) : a not in b

test code 작성하는 법

from django.test import TestCase, Client

class TestView(TestCase):
	def setUp(self):
		self.Client = Client()

Beautifulsoup 사용법

from bs4 import BeautifulSoup
from .models import Post

class TestView(TestCase):
	def test_page(self):
		# 해당 url을 객체로 불러오기
		res = self.client.get("/url")
		
		# url 로드에 성공했는지 상태코드로 확인
		self.assertEqual(res.status_code, 200)

		# url 객체의 html 컨텐츠 객체를 soup에 저장
		soup = BeautifulSoup(res.content, "html.parser")

		# 태그를 변수에 저장하여 사용
		myNav = soup.nav 
		
		# 테스트 코드 사용
		self.assertIn("menu text", myNav.text)
반응형

'dev-log > python' 카테고리의 다른 글

[Django] Template 문법  (0) 2023.10.18
[Django] 이미지 첨부하기  (0) 2023.10.16
[django] FBV / CBV 방식  (0) 2023.10.11
[django] 프로젝트 만들기 요약  (0) 2023.10.11
[Python] Tkinter event 종류  (0) 2023.02.18
Comments