테스트코드

Hyo Kyun Lee·2021년 5월 15일
0

Python

목록 보기
14/26

1. 개념

  • TDD, Test Driven Development
  • 웹서버의 동작 및 기능구현이 잘되었는지 확인하기위한 코드를 작성하는 과정
  • 코드작성후 웹서버 화면 확인이 아닌, 테스트 코드를 통한 터미널 출력 등으로 하여 테스트 과정을 간소화하는 작업의 일환

2. TDD와 기본원칙

  • 코드실행후 단위테스트가 순차적으로 이루어지며, 보통 Test를 위한 내장함수를 이용하여 해당 기능이 작동하는지 파악한다.
  • 단위테스트 1로직은 1기능만을 위한 테스트이고, 다시 말해 하나의 함수는 다른 함수의 영향을 받지 않아야 한다.
  • 테스트는 웹사이트가 정상적으로 작동하고 있을때, 웹사이트의 문자열(제목, 내용 등)/화면구현 등이 잘 나타났는지 웹사이트가 아닌 코드 및 코드출력을 통해 확인한다.

3. Test Code

assertEqual/assertTrue 등 testcode를 통한 오류유무를 확인해보는 간단한 예제

from selenium import webdriver

import unittest


class FunctionalTest(unittest.TestCase):
    def setUp(self):
        path = './chromedriver'
        self.driver = webdriver.Chrome(path)

    def tearDown(self):
        self.driver.quit()

    def test_go_to_question_detail_page(self):
        self.driver.get("http://localhost:8000/polls/")
        a_tag = self.driver.find_elements_by_tag_name("li > a")[1]
        self.assertIn( "What's new?", a_tag.text)

        a_tag.click()
        self.assertEqual(self.driver.current_url, "http://localhost:8000/polls/1/")
        self.assertIn(self.driver.find_element_by_tag_name("h1").text, "What's new?")

        li_tags = self.driver.find_elements_by_tag_name("ul > li")
        self.assertTrue(
            any(li_tag.text == "choice!" for li_tag in li_tags)
        )
        self.assertTrue(
            any(li_tag.text == "choice!" for li_tag in li_tags)
        )

3. 참조링크

https://galid1.tistory.com/783
https://brunch.co.kr/@springboot/418#comment
https://idlecomputer.tistory.com/29

4. remind

코드에 대한 이해가 우선이다. sugar syntax보다는 sugar logic!

0개의 댓글