내용이 많아서 분할해서 진행해야겠다 ;(

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 해야한다. image

가장 하단에 위치하는 Unit test는 코드의 유닛당으로 테스트하는 것이고, Integration tests는 multiple units 를 함께 테스트 그리고 마지막으론 바로 위에서 언급한 사용자 입장 테스트를 한다.