Skip to content

Latest commit

ย 

History

History
99 lines (64 loc) ยท 4.1 KB

File metadata and controls

99 lines (64 loc) ยท 4.1 KB

JUnit์„ ํ™œ์šฉํ•œ Unit test

JUnit์€ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ ๋„๊ตฌ๋กœ์„œ Eclipse์— ํ”Œ๋Ÿฌ๊ทธ์ธ ํ˜•ํƒœ๋กœ ํƒ‘์žฌ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ Eclipse์—์„œ JUnit์„ ํ™œ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณผ ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.

1.Eclipse์— JUnit ์„ค์ •

Java Project ์ƒ์„ฑ

JUnit_create_JavaProject

ํ”„๋กœ์ ํŠธ ์ด๋ฆ„์€ ํŽธ์˜๋ฅผ ์˜ˆ์‹œ๋ฅผ Test๋กœ ์ƒ์„ฑ ์ด๊ณณ์€ ์‹คํ–‰์ฝ”๋“œ์™€ ํ…Œ์ŠคํŠธ ๊ณ ๋“œ๋ฅผ ๋‹ด์„ java project ์ž…๋‹ˆ๋‹ค.

Project Properites ์„ค์ •

JUnit_setting

๋งˆ์šฐ์Šค ์šฐํด๋ฆญ์„ ํ•œ๋’ค ๋งจ Properities๋ฅผ ํด๋ฆญํž™๋‹ˆ๋‹ค.

JUnit ์ถ”๊ฐ€

JUnit_setting_addLibrary

์šฐ์ธก ํƒญ๋“ค ์ค‘ Java BuildPath๋ฅผ ์„ ํƒํ•œ ๋’ค Libraries ํƒญ์„ ์„ ํƒํ•˜๊ณ , Add Library๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

JUnit_setting_addLibrary_JUnit

JUnit์„ ํด๋ฆญํ•˜๊ณ  Next๋ฅผ ํด๋ฆญ

JUnit_setting_addLibrary_JUnit_JUnit5

JUnit5๋ฅผ ์„ ํƒํ•˜๊ณ  Finish๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

JUnit_setting_apply

๋‹ค์Œ๊ณผ ๊ฐ™์ด JUnit์ด ์ถ”๊ฐ€๋œ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ apply and Close๋ฅผ ํด๋ฆญํ•˜์—ฌ ์„ค์ •์„ ์ €์žฅํ•˜์—ฌ ์ค๋‹ˆ๋‹ค.

2. JUnit ์‚ฌ์šฉํ•˜๊ธฐ

์˜ˆ์ œ๋ฅผ ํ†ตํ•˜์—ฌ JUnit ์‚ฌ์šฉ๋ฒ•์„ ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ์— ์‚ฌ์šฉ๋  ์˜ˆ์ œ๋Š” ๊ณ„์‚ฐ๊ธฐ ์˜ˆ์ œ๋กœ ์ด๋ฅผ ํ†ตํ•ด JUnit์„ ์‚ฌ์šฉํ•ด ๋ณผ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ํ…Œ์ŠคํŠธ ํด๋ž˜์Šค ์ƒ์„ฑ ๋ฐ ๋ฉ”์†Œ๋“œ ์ •์˜

JUnit_new_package

๊ณ„์‚ฐ๊ธฐ Class๋ฅผ ๋‹ต์„ Package๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

JUnit_new_Class

์ƒ์„ฑ๋œ ํŒจํ‚ค์ง€ ์•ˆ์— Calculator Class๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ํ…Œ์ŠคํŠธํ•  ๋ฉ”์†Œ๋“œ๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.

JUnit_define_method

JUnit ํ…Œ์ŠคํŠธ์ผ€์ด์Šค ์ƒ์„ฑ

JUnit_new_testCase JUnit_new_testCase_setting

ํด๋ž˜์Šค ์ด๋ฆ„์€ ๋‚ด๊ฐ€ ํ…Œ์ŠคํŠธ ํ•  ํด๋ž˜์Šค์˜ ์ด๋ฆ„์— Test๋ฅผ ๋ถ™์—ฌ ์ •ํ•˜๊ณ  Browse๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜์—ฌ ๋‚ด๊ฐ€ Testํ•  Class๋ฅผ ์„ค์ •ํ•ด ์ค๋‹ˆ๋‹ค.

JUnit_new_testCase_classSelected

์ œ๋Œ€๋กœ ์„ ํƒ๋˜๋ฉด ์œ„์™€ ๊ฐ™์€ ์ƒํƒœ์ด๊ณ  ์ด ์ƒํƒœ์—์„œ Finish๋ฅผ ํด๋ฆญํ•˜์—ฌ JUnit test case๋ฅผ ์ƒ์„ฑํ•ด ์ค๋‹ˆ๋‹ค.

JUnit_testCase

์ž๋™์œผ๋กœ ์ƒ์„ฑ๋œ ๋ชจ์Šต์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” @test ์–ดํ† ๋„ค์ด์…˜์ด ์žˆ๋Š” ๋ถ€๋ถ„์˜ test() ํ•จ์ˆ˜์— test์ผ€์ด์Šค๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ Unit test๋ฅผ ์ˆ˜ํ–‰ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์ด๋•Œ, ์šฐ๋ฆฌ๊ฐ€ ์‚ฌ์šฉํ•  method๋“ค์€ ์ด๊ณณ์„ ์ฐธ๊ณ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๊ฐ„๋‹จํ•˜๊ฒŒ assertEquals() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ unit test๋ฅผ ์ง„ํ–‰ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

CalculatorTestํด๋ž˜์Šค์˜ ๋‚ด์šฉ์— ์•„๋ž˜์™€ ๊ฐ™์ด test์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€ํ•œ ๋’ค test๋ฅผ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

package com.calculator.test;

import static org.junit.jupiter.api.Assertions.*;

import org.junit.jupiter.api.Test;

import com.calculator.Calculator;

class CalculatorTest {

 @Test
 void test() {
 	Calculator calculator = new Calculator();
   assertEquals(30, calculator.sum(10,20),"10+20");
 	assertEquals(40, calculator.sum(30,10),"30+10");
 	assertEquals(40, calculator.sum(40,10),"40+10");
 }

}

JUnit_testCase_run

testํด๋ž˜์Šค๋ฅผ Runํ•˜๊ณ  ๊ฒฐ๊ณผ๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

  • ์‹คํŒจํ•  ๊ฒฝ์šฐ

JUnit_testCase_run_failure

gi> ๋นจ๊ฐ„์ƒ‰ ๋ฐ”์™€ ์•„๋ž˜ Failure Trace์— ์ฒ˜์Œ์œผ๋กœ ํ…Œ์ŠคํŠธํ•œ assertEquals ํ•จ์ˆ˜์˜ ์„ธ๋ฒˆ์งธ ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฐ’๊ณผ ๋‚ด ์˜ˆ์ƒ๊ฒฐ๊ณผ๊ฐ’ ๊ทธ๋ฆฌ๊ณ  ์‹ค์ œ ๊ฒฐ๊ณผ๊ฐ’์ด ๋‚˜์˜ค๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ•ด๊ฒฐํ•˜์—ฌ ์„ฑ๊ณตํ•  ๊ฒฝ์šฐ์—”

  • ์„ฑ๊ณตํ•  ๊ฒฝ์šฐ

JUnit_testCase_run_success

์œ„์™€ ๊ฐ™์€ ํ™”๋ฉด์ด ์ถœ๋ ฅ๋˜๋ฉฐ ์œ ๋‹› ํ…Œ์ŠคํŠธ๊ฐ€ ์„ฑ๊ณตํ–ˆ์Œ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

-๋ ^o^