TDD(Test Driven Development) (3)
Python에서 TDD로 진행해보자.
내용이 많아서 분할해서 진행해야겠다 ;(
https://testdriven.io/blog/modern-tdd/ 를 참고하여 공부했다.
TDD(Test Driven Development) (1)
TDD(Test Driven Development) (2)
Code coverage
코드 커버리지는 테스트 케이스가 얼마나 충족되었는지를 나타내는 지표중 하나이다. 출처
필요한 패키지를 설치해주고 실행한다.
$ pip install pytest-cov
$ python -m pytest tests --cove=blog
본문에서 다음을 강조하고있다.
High coverage percentage is great but the quality of your tests is much more important.
End-to-end Tests
e2e 테스트는 종단간 테스트로 사용자의 입장에서 테스트하는 것을 의미한다. 사용자에게 직접적으로 노출되는 부분을 점검한다고 보면된다. 출처
필요한 라이브러리 먼저 설치
$ pip install requests
e2e는 end to end를 의미한다.
pytest.ini 에 아래와 같은 내용을 추가한다.
[pytest]
markers =
e2e: marks tests as e2e (deselect with '-m "not e2e"')
이를 markers라고 한다.
test_app.py에 보면 아래와 같이 어노테이터를 추가해준다.
@pytest.mark.e2e
Testing Pyramid
구글링으로 하면 바로 나온다. 위로 갈수록 slow 아래로 갈수록 fast 해야한다.
가장 하단에 위치하는 Unit test는 코드의 유닛당으로 테스트하는 것이고, Integration tests는 multiple units 를 함께 테스트 그리고 마지막으론 바로 위에서 언급한 사용자 입장 테스트를 한다.