00133 20150511 Given When Then 문법 - AngryQA/blog GitHub Wiki
Given / When / Then 문법
AngryQA | 2015-05-11 월요일 오후 4:14 | QA/QA 템플릿 | 원본
단위 테스트 작성 시 Given / When / Then 문법에 따른 코딩법 예제 공유합니다.
4를 0으로 나누려했기 때문에 예외상황이 발생합니다~:D
1. 특정 값이 주어지고 (Given)
2. 어떤 이벤트가 발생했을 때 (When)
3. 그에 대한 결과를 보장해야한다 (Then)
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
public int Divide(int i, int j)
{
if (j == 0)
throw new DivideByZeroException("0으로 나누려 했습니다.");
return i / j;
}
[TestMethod]
[ExpectedException(typeof(DivideByZeroException))]
public void Divide_DivideByZeroException()
{
/*----------------------------------------------------------------------------
*
* 1. Test Method : Divide
* 2. 처리내용 : 나눗셈 연산 시 범위를 초과하는 값 입력으로
* DivideByZeroException 발생 확인
*
*
* @Author : jskim2
* @Date : 2015-05-11
----------------------------------------------------------------------------*/
//given
int num1 = 4;
int num2 = 0;
Basics basics = new Basics();
//When
try
{
basics.Divide(num1, num2);
}
catch (DivideByZeroException e)
{
//then
Console.Write(e.Message);
StringAssert.Contains(e.Message, "0으로 나누려 했습니다.");
throw new DivideByZeroException();
}
Assert.Fail("No exception was thrown.");
}
| cs |