[C언어, C++언어, Java 언어 강의 모음, 링크 모음]
테스트케이스좀 넣어서 확인해보게 단위테스트 생성하는 법!!
오늘은 엄청엄청 간단한 단위테스트를 만들어볼거예요
ㅎㅎ 정말 초 심플 버전으로! 알고리즘 문제 푸는 용!
프로그래머스 같은 알고리즘 사이트 풀 경우에도 그렇고 알고리즘 문제를 심심치 않게 풀다보면
메인에다가 매번 입력값 바꿔가면서 결과 확인하는 것도 번거롭고,
파일에다가 테스트케이스 저장해놓고 일일이 불러들여서 확인하는 로직 작성하는 거 조차 번거롭잖아요
하나의 함수에 아규먼트 값을 여러개 바꿔서 테스트해보고 싶다던가
클래스의 메소드를 테스트 해보고 싶다던가
할 때 간단하게 사용해볼 수 있는 단위테스트 프로젝트 생성하기 입니다. ㅎㅎ
덧셈 기능만 하는 간단한 함수를 테스트해볼게요
int solution(int a, int b){
return a+b;
}
처음 하는 사람들을 위한 레알 초 자세한 순서 정리
1. 비쥬얼 스튜디오를 킵니다.
2. ctrl+shift+N으로 프로젝트를 만든 후 테스트할 솔루션 함수를 작성해줘요. 저는 Test1으로 만들었음
3. ctrl+shift+a를 눌러서 cpp파일을 누른 뒤 평소에 코딩하듯 코딩을 해줄게요. 테스트할 함수를 코딩합니다. ㅎㅎ
프로젝트가 커지면 헤더파일도 분리하고 클래스도 정의하고 할테지만 단순 알고리즘 풀이에는 cpp파일 하나면 이상 필요한 일이 별로 없죠 ㅎㅎ
4. 위 사진처럼 코드를 작성하고 나면 프로젝트 우클릭 -> add -> New Project를 눌러줍니다.
C++보면 Test라는 게 있어요 -> Native Unit Test Project클릭후 생성
5. 고럼 솔루션창에 보면 이렇게 프로젝트가 두 개가 생기는데요
단위테스트 레퍼런스 우 클릭한 후 Add Reference -> 아까 테스트할려 했던 프로젝트 클릭 (Test1) -> OK
6. 테스트 하기 위한 설정은 다 끝났어요 ㅎㅎ 이게 끝이랍니다. ㅎㅎ 테스트 프로젝트의 cpp파일로 가서 이제 테스트케이스 작성해줄거예요.
#include "stdafx.h"
#include "CppUnitTest.h"
using namespace Microsoft::VisualStudio::CppUnitTestFramework;
namespace UnitTest1
{
TEST_CLASS(UnitTest1)
{
public:
TEST_METHOD(TestMethod1)
{
// TODO: Your test code here
}
};
}
가면 이렇게 기본 틀이 작성 되어 있습니다.
6-1. #include 해서 테스트하고자 하는 함수 파일을 임포트. 이 예제의 경우 Test1프로젝트의 Source.cpp파일에 있었으므로 #include "../Test1/Source.cpp"해줍니다.
6-2. 확인 코드 작성
Assert::AreEqual이라는 함수는 내가 정답으로 나올거라 추측하는 값과 실제 값이 일치하는지 확인해줘요
Assert::AreEqual(4, solution(1,3)); 해주면 두번째 결과 값이 첫 번째 값과 일치하니까 테스트 통과가 되겠죠!
6-3. TestMethod1, TestMethod2 이렇게 해서 테스트 케이스를 늘려갈 수 있어요ㅎㅎ
7. 테스트 실행~
상단 메뉴바에서 Test->Run->All Tests 해줘도 되고
Test_Method 우클릭한다음에 테스트 실행 눌러줘도 됩니다. ㅎㅎ
고러면 얘가 막 테스트를 하더니 Test Explorer에 테스트 결과를 알려줍니다.
먼저 두 개중 하나만 통과했다고 뜨네요 ㅎㅎ
2 tests 1 failed라고!
TestMethod1 테스트는 통과했는데 TestMethod2가 통과하지 못했네요
solution(1,4)의 결과는 5여야하는데 기대값을 0으로 우리가 놓고 테스트를 돌렸다는 것을 알 수 있어요 ㅎㅎ
매번 빌드하고 다시 변수값 바꾸고 빌드하기보다는
이렇게 테스트 환경을 이용해서 한 번에 테스트해보기~
아주아주 사소한 포스팅이지만 아나 모르나 차이는 크니깜 ㅎㅎㅎ 포스팅하기 ㅎㅎ
최신 댓글