2021년 11월 29일 월요일

QT5 TDD

 Unit Test

이 장에서 우리는 최근 몇 년 동안 정말로 인기를 얻은 프로세스인 단위 테스트를 살펴볼 것입니다. Qt의 고유한 단위 테스트 도구인 Qt Test를 사용하여 솔루션에 통합하는 방법을 다루기 전에 이것이 무엇이며 왜 하고 싶은지 간략하게 설명하겠습니다. 
여기서 다룰 주제는 다음과 같습니다.
  • 단위 테스트 원칙
  • 기본 Qt 접근 방식
  • 대안적 접근
  • DataDecorator 테스트
  • Entity 테스트
  • Mocking

Unit testing

단위 테스트의 핵심은 애플리케이션을 가장 작은 기능 블록(단위)으로 나눈 다음 이니셔티브 범위 내에서 실제 시나리오로 각 단위를 테스트하는 것입니다. 예를 들어, 두 개의 부호 있는 정수를 취하여 함께 더하는 간단한 방법을 취하십시오.

int add(intx, int y);
  • Adding two positive numbers
  • Adding two negative numbers
  • Adding two zeroes
  • Adding one positive and one negative number
  • Adding zero and a positive number
  • Adding zero and a negative number
이러한 각 시나리오에 대한 테스트를 작성한 다음 코드 기반이 변경될 때마다(add() 메서드뿐만 아니라 모든 코드) 이러한 테스트를 실행하여 코드가 여전히 예상대로 작동하는지 확인할 수 있습니다. 코드 변경이 기존 기능에 해로운 영향을 미치지 않는다는 확신을 줄 수 있는 정말 유용한 도구입니다.

역사적으로 이러한 테스트는 수동으로 수행되었지만 자동으로 테스트 코드에 코드를 작성할 수 있는 도구가 존재합니다. 이는 약간의 역설처럼 들리지만 실제로 작동합니다. Qt는 Qt Test라고 하는 단위 테스트 Qt 기반 응용 프로그램을 위한 맞춤형 프레임워크를 제공하며 이것이 우리가 사용할 것입니다.

Google 테스트와 같은 다른 C++ 테스트 프레임워크를 사용할 수 있습니다. 이 프레임워크는 특히 Google mock과 함께 사용할 때 더 많은 기능과 유연성을 제공하지만 설정하기가 조금 더 까다로울 수 있습니다.

테스트 주도 개발(TDD)은 단위 테스트를 한 단계 끌어올리고 실제로 코드 작성 방식을 처음부터 변경합니다. 기본적으로 테스트를 먼저 작성합니다. 구현이 없기 때문에 테스트는 처음에 실패할 것입니다(실제로 빌드되지 않을 수도 있음). 그런 다음 테스트를 통과하는 데 필요한 최소한의 코드를 작성하고 다음 테스트 작성으로 넘어갑니다. 필요한 기능 블록을 제공할 때까지 이러한 방식으로 구현을 반복적으로 구축합니다. 마지막으로, 완료된 단위 테스트를 사용하여 리팩토링된 코드가 여전히 예상대로 작동하는지 확인하여 필요한 표준으로 코드를 리팩토링합니다. 이것은 때때로 Red-Green-Refactor라고도 합니다.

이것은 단위 테스트에 관한 책이 아니며 확실히 TDD에 관한 책도 아닙니다. 따라서 우리의 접근 방식은 매우 느슨하지만 현대 응용 프로그램 개발의 핵심 부분이며 이것이 Qt 프로젝트 애플리케이션에 어떻게 맞는지 아는 것이 중요합니다. 

우리는 비즈니스 로직 프로젝트에서 UI로 간단한 데이터 조각(환영 메시지)을 전달하는 메커니즘을 시연했습니다. 따라서 항상 가능한 한 간단하게 시작하여 이 장의 첫 번째 목표는 기본적인 단위 테스트를 작성하는 것입니다. 그 행동을 위해. 완료되면 이전 장에서 구현한 데이터 클래스 테스트로 넘어갑니다.

The default Qt approach

cm-tests 프로젝트를 만들 때 Qt Creator는 testCase1이라는 단일 테스트를 포함하는 시작점을 사용할 수 있도록 ClientTests 클래스를 유용하게 만들었습니다. 바로 들어가서 이 기본 테스트를 실행하고 무슨 일이 일어나는지 봅시다. 그런 다음 코드를 살펴보고 무슨 일이 일어나고 있는지 논의할 것입니다.

실행 출력을 cm-tests로 전환하고 컴파일하고 실행합니다.

댓글 없음:

댓글 쓰기

VITIS Git + Doxygen Config

 Doxygen Configure 1. Vitis 메뉴의 Window->Preference의 C/C++ -> Editor의 Documentation tool comments 기본 설정값을 Doxygen으로 변경 설정 후 함수 바로 위에서 /...