Python은 강력하고 인기 있는 프로그래밍 언어로서 서버 측 프로그래밍에 매우 적합합니다. 서버 측 프로그래밍의 가장 중요한 측면 중 하나는 테스트입니다. 애플리케이션이 아무리 완벽하더라도 안정성과 정확성을 보장하기 위해 항상 테스트해야 하기 때문입니다.
이제 TDD(Test Driven Development) 방법을 사용할 때입니다. TDD는 실제로 코드를 작성하기 전에 테스트 케이스를 작성하는 것을 의미합니다. 이 접근 방식을 사용하면 테스트 사례가 버그를 찾고 수정하는 데 도움이 될 수 있으므로 안정적이고 신뢰할 수 있는 애플리케이션을 더 쉽게 작성할 수 있습니다. 매우 존경받는 테스트 프레임워크 중 하나는 pytest입니다.
이 기사에서는 pytest를 사용한 테스트 기반 개발 프로세스에 대해 논의하겠습니다.
먼저 예제를 만들어 보겠습니다. 단어의 정의를 얻고 품사에 따라 검색할 수 있는 웹 애플리케이션을 만들겠습니다.
이 애플리케이션에서는 다음 클래스와 메서드를 작성해야 합니다.
Word 클래스 - 단어를 나타내며 품사와 정의의 일부를 포함합니다.
class Word: def __init__(self, word, part_of_speech, definition): self.word = word self.part_of_speech = part_of_speech self.definition = definition
Dictionary 클래스 - 단어 정의를 추가하고 쿼리하는 메서드가 포함된 사전을 나타냅니다.
class Dictionary: def __init__(self): self.words = [] def add_word(self, word, part_of_speech, definition): new_word = Word(word, part_of_speech, definition) self.words.append(new_word) def search(self, query): results = [] for word in self.words: if query in word.definition: results.append(word) return results
이제 두 클래스가 있으므로 테스트 사례 작성을 시작해 보겠습니다.
우리는 pytest를 사용하여 테스트 케이스를 작성할 것입니다. pytest는 간단하고 유연한 Python 테스트 프레임워크입니다.
먼저 pytest를 설치해야 합니다. pip를 사용하여 pytest를 설치할 수 있습니다.
pip install pytest
다음으로 프로젝트 폴더에 test_dictionary.py 파일을 생성해 보겠습니다. 이 파일의 코드에는 Dictionary 및 Word 클래스를 테스트하는 데 사용할 테스트 사례가 포함됩니다.
먼저 Word 클래스를 테스트하기 위한 테스트 케이스를 작성하겠습니다. 우리는 각 단어의 인수가 올바르게 저장되었는지 테스트하기 위해 Assert 문을 사용할 것입니다.
class TestWord: def test_init(self): w = Word('test', 'noun', 'this is a test') assert w.word == 'test' assert w.part_of_speech == 'noun' assert w.definition == 'this is a test'
단어, 품사, 정의가 단어의 입력 매개변수로 올바르게 설정되었는지 확인하기 위해 Assert 문을 사용합니다.
이제 Dictionary 클래스를 테스트하기 위해 몇 가지 테스트 사례를 작성하겠습니다.
class TestDictionary: def test_add_word(self): d = Dictionary() d.add_word('apple', 'noun', 'a fruit') assert len(d.words) == 1 assert d.words[0].word == 'apple' assert d.words[0].part_of_speech == 'noun' assert d.words[0].definition == 'a fruit' def test_search(self): d = Dictionary() d.add_word('apple', 'noun', 'a fruit') d.add_word('banana', 'noun', 'another fruit') d.add_word('carrot', 'noun', 'a vegetable') results = d.search('fruit') assert len(results) == 2 assert results[0].word == 'apple' assert results[1].word == 'banana'
이 테스트 사례를 통해 사전 클래스가 단어를 올바르게 추가하고 검색 방법을 사용할 때 결과를 올바르게 반환하는지 테스트할 수 있습니다.
이제 테스트 케이스를 실행하여 통과하는지 확인합니다. 터미널에서 다음 명령을 사용하여 pytest를 실행합니다.
pytest
모든 테스트가 통과하면 다음과 유사한 출력이 표시됩니다.
============================== test session starts ============================== platform linux -- Python 3.x.y, pytest-6.x.y, py-1.x.y, pluggy-1.x.y rootdir: /path/to/project collected 3 items test_dictionary.py ... [100%] =============================== 3 passed in 0.01s ===============================
이는 테스트 사례가 통과되었고 사전 및 단어 클래스가 정상 작동한다는 의미입니다.
테스트 중심 개발을 위해 pytest를 사용하면 코드를 작성하기 전에 테스트 사례를 작성할 수 있으므로 코드 품질과 안정성을 보장하는 데 도움이 됩니다. pytest는 사용하기 쉽고 강력하며 대부분의 Python 서버 측 프로그래밍 테스트 요구 사항을 충족할 수 있는 매우 인기 있는 테스트 프레임워크입니다.
위 내용은 Python 서버 프로그래밍: pytest를 사용한 테스트 중심 개발의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!