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.");

        }

Colored by Color Scripter

| cs |