JUNIT 실습및발표

Similar documents
PowerPoint 프레젠테이션

2 JUnit 이필요한이유 기졲의테스트방식 클래스에서테스트최소단위는메소드이며어떤것이유효한지를찾으려면하나씩테스트해야함테스트구현하는과정에서한번의단일테스트가실패할경우, 후속테스트가전혀수행되지않아전체적인테스트가불가능테스트를자동으로시작해주는프레임워크가없어각테스트를시작하기위해서는

JUnit & Eclipse

JAVA PROGRAMMING 실습 08.다형성

PowerPoint 프레젠테이션

Junit

비긴쿡-자바 00앞부속

PowerPoint 프레젠테이션

PowerPoint Presentation

ppt.glzy8.com提供海量PPT模板免费下载!

PowerPoint Presentation

슬라이드 1

C++ Programming

Cluster management software

Design Issues

PowerPoint 프레젠테이션

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2

Network Programming

gnu-lee-oop-kor-lec06-3-chap7

PowerPoint Presentation

PowerPoint Presentation

Microsoft PowerPoint - CSharp-10-예외처리

02 C h a p t e r Java

제11장 프로세스와 쓰레드

PowerPoint 프레젠테이션

신림프로그래머_클린코드.key

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

09-interface.key

소프트웨어공학개론 Tutorial #2: Junit Eun Man Choi

PowerPoint 프레젠테이션

Microsoft PowerPoint - java1-lab5-ImageProcessorTestOOP.pptx

PowerPoint Presentation

PowerPoint Presentation

교육자료

Microsoft PowerPoint - 04-UDP Programming.ppt

10.0pt1height.7depth.3width±â10.0pt1height.7depth.3widthÃÊ10.0pt1height.7depth.3widthÅë10.0pt1height.7depth.3width°è10.0pt1height.7depth.3widthÇÁ10.0pt1height.7depth.3width·Î10.0pt1height.7depth.3width±×10.0pt1height.7depth.3width·¡10.0pt1height.7depth.3width¹Ö pt1height.7depth.3widthŬ10.0pt1height.7depth.3width·¡10.0pt1height.7depth.3width½º, 10.0pt1height.7depth.3width°´10.0pt1height.7depth.3widthü, 10.0pt1height.7depth.3widthº¯10.0pt1height.7depth.3width¼ö, 10.0pt1height.7depth.3width¸Þ10.0pt1height.7depth.3width¼Ò10.0pt1height.7depth.3widthµå

PowerPoint Presentation

JUnit 4 의새로운기능자바 5 주석덕분에 JUnit 4 가이전보다더욱가벼워졌고유연해졌다. 일부흥미로운새기능을위해이전의엄격한명명규칙과상속계층구조가사라졌다. 다음은 JUnit 4 의새로운기능을간략히설명해놓은목록이다. 매개변수테스트예외테스트제한시간테스트유연한픽스쳐테스트를

Microsoft PowerPoint - 2강

Analytics > Log & Crash Search > Unity ios SDK [Deprecated] Log & Crash Unity ios SDK. TOAST SDK. Log & Crash Unity SDK Log & Crash Search. Log & Cras

1

쉽게 풀어쓴 C 프로그래밍

C# Programming Guide - Types

JAVA PROGRAMMING 실습 09. 예외처리

표지

Microsoft PowerPoint - Java7.pptx

슬라이드 1

PowerPoint Template

12-file.key

Microsoft PowerPoint 자바-기본문법(Ch2).pptx

Microsoft PowerPoint - lec7_package [호환 모드]

PowerPoint Presentation

예제 2) Test.java class A intvar= 10; void method() class B extends A intvar= 20; 1"); void method() 2"); void method1() public class Test 3"); args) A

목차 INDEX JSON? - JSON 개요 - JSONObject - JSONArray 서울시공공데이터 API 살펴보기 - 요청인자살펴보기 - Result Code - 출력값 HttpClient - HttpHelper 클래스작성 - JSONParser 클래스작성 공공

쉽게 풀어쓴 C 프로그래밊

Spring Boot/JDBC JdbcTemplate/CRUD 예제

PowerPoint 프레젠테이션

학습목표 함수프로시저, 서브프로시저의의미를안다. 매개변수전달방식을학습한다. 함수를이용한프로그래밍한다. 2

ThisJava ..

Mobile Service > IAP > Android SDK [ ] IAP SDK TOAST SDK. IAP SDK. Android Studio IDE Android SDK Version (API Level 10). Name Reference V

PowerPoint 프레젠테이션

자바 프로그래밍

PowerPoint Presentation

(Microsoft PowerPoint - java1-lecture11.ppt [\310\243\310\257 \270\360\265\345])

[ 프로젝트이름 ] : Project_Car [ 프로젝트를만든목적 ] : 임의의자동차판매소가있다고가정하고, 고객이원하는자동차의각부분을 Java 를이용하여객 체로생성하고, 그것을제어하는메소드를이용하여자동차객체를생성하는것이목표이다. [ 프로젝트패키지와클래스의내용설명 ] [

JAVA PROGRAMMING 실습 02. 표준 입출력

(Microsoft Word - \301\337\260\243\260\355\273\347.docx)

Microsoft PowerPoint - Supplement-03-TCP Programming.ppt [호환 모드]

Java ...

rmi_박준용_final.PDF

PowerPoint 프레젠테이션

제8장 자바 GUI 프로그래밍 II

class Sale void makelineitem(productspecification* spec, int qty) SalesLineItem* sl = new SalesLineItem(spec, qty); ; 2. 아래의액티비티다이어그램을보고 Java 또는 C ++,

교육2 ? 그림

JMF2_심빈구.PDF

Connection 8 22 UniSQLConnection / / 9 3 UniSQL OID SET

PowerPoint Presentation

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

쉽게

API 매뉴얼

(8) getpi() 함수는정적함수이므로 main() 에서호출할수있다. (9) class Circle private double radius; static final double PI= ; // PI 이름으로 로초기화된정적상수 public

chap 5: Trees

A Tour of Java V

FileMaker ODBC and JDBC Guide

Microsoft PowerPoint - 14주차 강의자료

17장 클래스와 메소드

Secure Programming Lecture1 : Introduction

Microsoft PowerPoint - 03-TCP Programming.ppt

JAVA PROGRAMMING 실습 02. 표준 입출력

텀블러514

Chap12

오버라이딩 (Overriding)

파일로입출력하기II - 파일출력클래스중에는데이터를일정한형태로출력하는기능을가지고있다. - PrintWriter와 PrintStream을사용해서원하는형태로출력할수있다. - PrintStream은구버전으로가능하면 PrintWriter 클래스를사용한다. PrintWriter

4장.문장

InsertColumnNonNullableError(#colName) 에해당하는메시지출력 존재하지않는컬럼에값을삽입하려고할경우, InsertColumnExistenceError(#colName) 에해당하는메시지출력 실행결과가 primary key 제약에위배된다면, Ins

05-class.key

Semantic Consistency in Information Exchange


Microsoft PowerPoint - RMI.ppt

Transcription:

JUNIT 실습및발표

JUNIT 접속 www.junit.org DownLoad JUnit JavaDoc

API Document 를참조

JUNIT 4.8.1 다운로드

설치파일 (jar 파일 ) 을다운로드 CLASSPATH 를설정 환경변수에서설정 실행할클래스에서 import JUnit 설치하기

테스트실행주석 @Test Test 를실행할 method 앞에붙임 expected 발생할것으로예상되는예외를지정. 예외가생기지않으면실패. timeout 테스트가끝나는시간을예측. 시간보다길게끝나면실 패. @Ignore 테스트를하지않을 method 앞에붙임.

예제 public class MyTest{ @Test(expected=NullPointerException.class) public void extest(){ Object obj = null; obj.tostring();//exception 발생 : 성공 } @Test(timeout=1000) public void timetest(){while(true){}};// 실패 @Ignore public void igtest(){system.out.println("this isn't ignored");}// 실행되지않음

결과 TimeOut exception 이발생 Test 가 2 개실행. Ignore 는무시됨

테스트전, 후에실행 @After 각 TestMethod 를실행한후마다실행한다. @AfterClass Test 를마친후에한번만실행한다. @Before 각 TestMethod 를실행하기전마다실행한다. @BeforeClass Test 를시작하기전에한번만실행한다.

예제 public class MyTest{ @BeforeClass public void static setupclass(){system.out.println("beforeclass");} @Before public void setup(){system.out.println("before");} @Test public void test1(){system.out.println("test1");} @Test public void test2(){system.out.println("test2");} @After public void teardown(){system.out.println("after");} @AfterClass public static void teardownclass(){system.out.println("afterclass");}} >java org.junit.runner.junitcore MyTest

실행순서 BeforeClass-> Before->test1->After-> Before->test2->After-> AfterClass

결과값검증하기 assert...() 예상되는결과값을검사한다. assertarrayequals, assertequals, assertfalse, assertnotnull, assertnull 등이있다. fail() 실패했다고보고한다. Assume...() 예상되는결과와상관없이만족한다고가정한다. Static 으로 import 한다.

예제 public class MyTest{ @Test public void Test1(){ assertequals(0, (0*5)+12-8-4);// 결과값은 True} @Test public void Test2(){ Object obj = null; assertnull(obj);//obj 가 null 이므로결과값은 True} @Test public void Test3(){ Object obj = null; assumenotnull(obj);//obj 가 Null 이아니라고가정했기때문에 obj.tostring(); //exception 을발생시키지않는다. }}

성공 결과

테스트자동화 클래스를정밀하게테스트하는것은시간이걸린다. 대규모개발시에는테스트할단위들이많아진다. 테스트를간단하게하기위해서는자동화를해야한다.

여러가지파라미터테스트 @RunWith Test 시클래스를참조한다. 값은 Runner 를상속받은클래스이다. RunWith 의값들중에는 Categories, Suite, Enclosed, Parameterized 등의클래스들이있다. @Parameters Parameterized 를참조하는클래스의파라미터를리턴하는메소드앞에붙는주석 메소드의리턴형식은 public static Collection 이다.

예제 @RunWith(Parameterized.class) public class MyTest{ int num; boolean match; public MyTest(int num, boolean match){ this.num = num; this.match = match; } @Parameters public static Collection values(){ return Arrays.asList(new Object[][]{ {1, false},// 실패 {2, false},// 성공 {3, true},// 성공 {4, true}// 실패 });} @Test public void Test1(){ boolean isodd; 파라미터를사용한다는것을선언해준다. 테스트시생성자에서 member 값으로파라미터를넣는다. Static 키워드와리턴값은지켜준다. if(num%2 == 1) isodd = true; else isodd = false; // 홀수면 true를리턴한다. assertequals(match, isodd); }}

결과 Failure 가 2 개생겼음을알려준다. [0] 번 Parameter 가 Test1 에서실패했다.

RunWith 와함께쓰이는 Class Suite.class 여러개의 Test 클래스들을모아실행할때쓰인다. @SuiteClasses 와함께쓰인다. Category.class Suite 의한종류이다. 클래스군을지정해서실행한다. @IncludeCategory,@ExcludeCategory, @Category 와함께쓰인다. Enclosed.class InnerClass 를사용할때쓰인다.

Suite 예제 public class ATest{ @Test public void test1(){fail();} } public class BTest{ @Test public void test1(){fail();} } @RunWith(Suite.class) @SuiteClasses({ATest.class, BTest.class}) public class ABTest{} > java org.junit.runner.junitcore ABTest

결과 2 개의실패가발생.

카테고리을이용하는방법 public interface CTests{} public interface DTests{} public class ATest{ @Category(CTests.class)@Test public void test1(){} @Category(DTests.class)@Test public void test2(){fail();}}} public class BTest{ @Test @Category({CTests.class, DTests.class}) public void test1(){fail();}} @RunWith(Suite.class) @IncludeCategory(CTests.class) @ExcludeCategory(DTests.class) @SuiteClasses({ATest.class, BTest.class}) public class MyTest{} Ctests 에속한다. Dtests 에속한다. Ctests,DTests 에속한다 CTests 는넣고 Dtests 는뺀다

결과 테스트 1 개성공

직접실행하는방법 public class ATest{ @Test public void test1(){ } } public class BTest{ @Test public void test1(){ } } public class ABTest{ static public void main(string...args){ Class[] classes = {ATest.class, BTest.class}; Result result = JUnitCore.runClasses(classes); // 이하 result 출력은직접한다. } } >java ABTest