ワークショップ テスト駆動開発

Similar documents
cpp1.dvi

新・明解Java入門


Java演習(4) -- 変数と型 --

ユニット・テストの概要

Microsoft PowerPoint - lec06 [互換モード]

アルゴリズムとデータ構造1

ALG2012-A.ppt

(Eclipse\202\305\212w\202\324Java2\215\374.pdf)

解きながら学ぶJava入門編

やさしいJavaプログラミング -Great Ideas for Java Programming サンプルPDF

I java A

untitled

K227 Java 2

StateMachine Composite Structure Sequence

text_08.dvi

3 Java 3.1 Hello World! Hello World public class HelloWorld { public static void main(string[] args) { System.out.println("Hello World");

intra-mart Accel Platform — イベントナビゲータ 開発ガイド   初版  

: : : TSTank 2

コーディング基準.PDF

ALG ppt


Thread

Microsoft Word - keisankigairon.ch doc

untitled

二分木ヒープとは 集合 リストから 最小な 要素を取り出す 二分木ヒープは そのための標準的データ構造 二分木ヒープを保存するデータ構造 二分木ヒープの操作のメソッド 対象となるデータクラス 識別のためのlabelフィールド 値を保持するvalueフィールド

Java (9) 1 Lesson Java System.out.println() 1 Java API 1 Java Java 1

intra-mart Accel Platform — イベントナビゲータ 開発ガイド   初版   None

Exam : 1z1-809-JPN Title : Java SE 8 Programmer II Vendor : Oracle Version : DEMO Get Latest & Valid 1z1-809-JPN Exam's Question and Answers 1 from Ac

JUnit 概要 2015/4/16 版今泉俊幸 2015 bbreak Systems 1

1 Java Java GUI , 2 2 jlabel1 jlabel2 jlabel3 jtextfield1 jtextfield2 jtextfield3 jbutton1 jtextfield1 jtextfield2 jtextfield3

untitled

アプレットの作成

問題1 以下に示すプログラムは、次の処理をするプログラムである

2.2 Java C main Java main 2 C 6 C Java 3 C Java ( ) G101Hello.java G101Hello main G101Hello.java /* G101Hello */ class G101Hello { /* main */ public s

TopLink å SampleClient.java... 5 Ò readallsample() querysample() cachesample() Ç..

10K

ValueHolder... 9 Customer.java Oracle TopLink 10g(10.1.3) È Volume3 2

10/ / /30 3. ( ) 11/ 6 4. UNIX + C socket 11/13 5. ( ) C 11/20 6. http, CGI Perl 11/27 7. ( ) Perl 12/ 4 8. Windows Winsock 12/11 9. JAV

Java学習教材

r1.dvi

2 1 Web Java Android Java 1.2 6) Java Java 7) 6) Java Java (Swing, JavaFX) (JDBC) 7) OS 1.3 Java Java

tkk0408nari

226

Condition DAQ condition condition 2 3 XML key value

VB.NETコーディング標準

アルゴリズムとデータ構造1

InputStreamReader は, 入力ストリーム ( 端末 ) からのバイト入力を文字に変換する クラス BufferedReader は, 文字入力ストリームからの入力をバッファリングし, メソッド readline による行単位での入力処理を可能とする 設問プログラム中のに入れる正しい答

1_cover

Java プログラミング Ⅰ 3 回目変 数 今日の講義講義で学ぶ内容 変数とは 変数の使い方 キーボード入力の仕方 変 数 変 数 一時的に値を記憶させておく機能 変数は 型 ( データ型 ) と識別子をもちます 2 型 ( データ型 ) 変数に記憶する値の種類変数の型は 記憶できる値の種類と範囲

I. (i) Foo public (A). javac Foo.java java Foo.class (C). javac Foo java Foo (ii)? (B). javac Foo.java java Foo (D). javac Foo java Foo.class (A). Jav

PowerPoint プレゼンテーション

2 static final int DO NOTHING ON CLOSE static final int HIDE ON CLOSE static final int DISPOSE ON CLOSE static final int EXIT ON CLOSE void setvisible

19 3!! (+) (>) (++) (+=) for while 3.1!! (20, 20) (1)(Blocks1.java) import javax.swing.japplet; import java.awt.graphics;

JAVA H13 OISA JAVA 1

java_servlet2_見本

1: JX-model XML File Package Import Class Intf Ctor Method SInit Field Param Local ExtdOpt ImplOpt ThrwOpt Members QName Type Stmt Label Expr ident li

II 1 p.1 1 Servlet 1.1 Web Web WWW HTML CGI Common Gateway Interface Web HTML Web Web CGI CGI CGI Perl, PHP C JavaScript Web CGI HTML 1.2 Servlet Java

JavaプログラミングⅠ

Java Java Java Java Java 4 p * *** ***** *** * Unix p a,b,c,d 100,200,250,500 a*b = a*b+c = a*b+c*d = (a+b)*(c+d) = 225

class IntCell { private int value ; int getvalue() {return value; private IntCell next; IntCell next() {return next; IntCell(int value) {this.value =

Boo Boo 2 Boo 2.NET Framework SDK 2 Subversion 2 2 Java 4 NAnt 5 Boo 5 5 Boo if 11 for 11 range 12 break continue 13 pass

1: Preference Display 1 package sample. pref ; 2 3 import android. app. Activity ; 4 import android. content. Intent ; 5 import android. content. Shar

目的 泡立ち法を例に Comparableインターフェイスの実装 抽象クラスの利用 型パラメタの利用 比較 入替 の回数を計測

Microsoft Word - CompA-Ex doc

グラフの探索 JAVA での実装

Web 1 p.2 1 Servlet Servlet Web Web Web Apache Web Servlet JSP Web Apache Tomcat Jetty Apache Tomcat, Jetty Java JDK, Eclipse

HTML Java Tips dp8t-asm/java/tips/ Apache Tomcat Java if else f

ALG2012-C.ppt

オブジェクト指向プログラミング・同演習 5月21日演習課題

vol.30.}...`.X...b.h

Local variable x y i paint public class Sample extends Applet { public void paint( Graphics gc ) { int x, y;... int i=10 ; while ( i < 100 ) {... i +=

<4D F736F F D20566F F6E658C6791D FE382C582CC4A D834F E F8F4390B394C52E646F63>

Safari AppletViewer Web HTML Netscape Web Web 15-1 Applet Web Applet init Web paint Web start Web HTML stop destroy update init Web paint start Web up

日 用 用 面 示 用 用 方

HTML Java Tips dp8t-asm/java/tips/ Apache Tomcat Java if else f

Java プログラミング Ⅰ 7 回目 switch 文と論理演算子 条件判断文 3 switch 文 switch 文式が case の値と一致した場合 そこから直後の break; までを処理し どれにも一致しない場合 default; から直後の break; までを処理する 但し 式や値 1

オブジェクト脳のつくり方

untitled

class IntCell { private int value ; int getvalue() {return value; private IntCell next; IntCell next() {return next; IntCell(int value) {this.value =

JavaプログラミングⅠ

データ構造とアルゴリズム論

tn_soturon_sjis.dvi

untitled

A B 1: Ex. MPICH-G2 C.f. NXProxy [Tanaka] 2:

実行時のメモリ構造\(2\) Javaスタック内のフレーム間動作

Java演習(2) -- 簡単なプログラム --

. IDE JIVE[1][] Eclipse Java ( 1) Java Platform Debugger Architecture [5] 3. Eclipse GUI JIVE 3.1 Eclipse ( ) 1 JIVE Java [3] IDE c 016 Information Pr


Oracle9i JDeveloperによるWebサービスの構築

Java (5) 1 Lesson 3: x 2 +4x +5 f(x) =x 2 +4x +5 x f(10) x Java , 3.0,..., 10.0, 1.0, 2.0,... flow rate (m**3/s) "flow

<4D F736F F D B B83578B6594BB2D834A836F815B82D082C88C60202E646F63>

スライド 1

Oracle Forms Services R6i

** 平成 16 年度 FE 午後問題 Java** 示現塾プロジェクトマネージャ テクニカルエンジニア ( ネットワーク ) など各種セミナーを開催中!! 開催日 受講料 カリキュラム等 詳しくは 今すぐアクセス!! 平成 16

6 p.1 6 Java GUI GUI paintcomponent GUI mouseclicked, keypressed, actionperformed mouseclicked paintcomponent thread, 1 GUI 6.0.2, mutlithread C

Vector Vector Vector Vector() Vector(int n) n Vector(int n,int delta) n delta

Javaセキュアコーディングセミナー東京 第4回 メソッドとセキュリティ 演習解説

目 次 Java GUI 3 1 概要 クラス構成 ソースコード例 課題...7 i

JavaScript の使い方

Transcription:

JUnit 5 5 20 20 FIT 20 FIT FIT 10

IT OO Web XML ADC2003 WG

JUnit

JUnit 3.8.1 URL: http://www.junit.org/index.htm junit.3.8.1.zip junit.jar c: junit junit.jar javac -classpath c: junit junit.jar JUnitTest.java java -cp.;c: junit junit.jar junit.textui.testrunner JUnitTest

junit.framework.testcase public void testxxxx() import import junit.framework.testcase; public public class class JUnitSample extends TestCase{ public public void void testsample1(){ System.out.println( ); );

JUnit

assert asserttrue asserttrue(math.abs(-1) >= 0); assertequals assertequals(3, 1 + 2); assertequals( abcd, ab + cd ); fail fail( );

c: angya junit FirstTest.java c: angya junit FirstTest.java import import junit.framework.testcase; junit.framework.testcase; public public class class FirstTest FirstTest extends extends TestCase{ TestCase{ public public void void testsuccess(){ testsuccess(){ //true //true true true asserttrue(true); asserttrue(true); public public void void testfail(){ testfail(){ // // 1 1 assertequals(0, assertequals(0, 1); 1); public public void void testerror(){ testerror(){ // // int int i i = = 0/0; 0/0; c: angya junit>javac c: angya junit>javac-classpath -classpathc: junit junit.jar c: junit junit.jar FirstTest.java FirstTest.java c: angya junit>java c: angya junit>java -cp -cp.;c: junit junit.jar junit.swingui.testrunner junit.swingui.testrunnerfirsttest

public public class class Calc{ Calc{ public public int int add(int add(int a, a, int int b){ b){ return return a + b; b; import import junit.framework.testcase; public public class class CalcTest CalcTest extends extends TestCase{ public public void void testadd(){ Calc Calc c = new new Calc(); Calc(); assertequals(3, c.add(1, c.add(1, 2)); 2));

(TDD:Test Driven Development) C1

TDD(

TDD 1. 2. 3. 4. 5. 6. (1) 7. 1 6

TDD (1/13) Calc (int) add sub mul div 2 ToDo

TDD (2/13) c: angya calc CalcTest.java Calc CalcTest c: angya calc CalcTest.java import import junit.framework.testcase; junit.framework.testcase; public public class class CalcTest CalcTest extends extends TestCase{ TestCase{

TDD (3/13) add testadd c: angya calc CalcTest.java c: angya calc CalcTest.java import import junit.framework.testcase; junit.framework.testcase; public public void public class class CalcTest CalcTest extends extends TestCase{ public TestCase{ public void void testadd(){ testadd(){

TDD (4/13) Swing

TDD (5/13) 1+2=3 c: angya calc CalcTest.java c: angya calc CalcTest.java add import junit.framework.testcase; import junit.framework.testcase; public public class class CalcTest CalcTest extends extends TestCase{ public TestCase{ public void void testadd(){ testadd(){ Calc Calc c c = = new new Calc(); Calc(); assertequals(3, assertequals(3, c.add(1, c.add(1, 2)); 2));

TDD (6/13) Calc

TDD (7/13) c: angya calc Calc.java c: angya calc Calc.java public public class class Calc{ Calc{ return return 0; 0; return 0 public public int int add(int add(int a, a, int int b){ b){

TDD (8/13)

TDD (9/13) JUnit [Run] add 0

TDD (10/13) c: angya calc Calc.java c: angya calc Calc.java public public class class Calc{ public Calc{ assertequals(3, public int int add(int add(int a, a, int int b){ b){ return return 3; 3; c.add(1, 2)); return 3;

TDD (11/13)

TDD (12/13) assertequals(3, c.add(1, 2)); return 3; c: angya calc Calc.java c: angya calc Calc.java 3 return a + b; public public class class Calc{ public Calc{ public int int add(int add(int a, a, int int b){ b){ return return a a + + b; b;

TDD (13/13) ToDo

TDD Fake It Refactoring Triangulation return 0; return 3; Fake It Refactoring return a+b; return 0; Fake It return 3; Refactoring Obvious Implementaion return a+b; return 0; return a+b;

X+Y 2 X 2 +2XY+Y 2 (X+Y)(X+Y) = X(X+Y)+Y(X+Y) = X 2 +XY+XY+Y 2 = X 2 +2XY+Y 2

isempty() true false size() push() void push(int value) pop() void pop() java.util.emptystackexception top() int top() java.util.emptystackexception

Stack StackTest Stack isempty() true

StackTest import java.util.emptystackexception; import junit.framework.testcase; /** * @author hiranabe, kitano */ public class StackTest extends TestCase { private Stack stack; protected void setup() { stack = new Stack(); public void testcreate() { asserttrue(stack.isempty()); public void testpushandtop() { stack.push(1); assertfalse(stack.isempty()); assertequals(1, stack.top()); stack.push(2); assertequals(2, stack.top()); public void testpushandsize() { stack.push(1); assertequals(1, stack.size()); stack.push(2); assertequals(2, stack.size()); public void testemptypop() { try { stack.pop(); fail(); catch (EmptyStackException expected) { public void testpushandpop() { stack.push(1); stack.pop(); assertequals(0, stack.size()); public void testpushpushpoptop() { stack.push(1); stack.push(2); assertequals(2, stack.size()); stack.pop(); assertequals(1, stack.top()); public void testemptytop() { try { stack.top(); fail(); catch (EmptyStackException expected) {

Stack import java.util.emptystackexception; /** * @author hiranabe, kitano */ public class Stack { private int[] value = new int[10]; private int size; public boolean isempty() { return size == 0; public int top() { emptycheck(); return value[size - 1]; public void push(int value) { this.value[size++] = value; public int size() { return size; public void pop() { emptycheck(); --size; private void emptycheck() { if (isempty()) throw new EmptyStackException();

?!

FIT FIT Framework for Integrated Test XP Ward Cunningham ObjectMentor FITNESSE http://fit.c2.com/ http://fitnesse.org/

FIT View Model WikiTop

FIT JUnit

FIT FIT TextFixture

Fixture FIT Fixture

FIT ColumnFixture SampleColumnFixture x 1 3 y 2 5 x set add() 3 8 SampleColumnFixture x y set y add() add()

FIT

FIT FITNESSE PC fitnesse /run.bat Apache 80 Listen Web http://localhost/

FITNESSE CalcTest FIT

CalcTest ClassPath Test

ClassPath Edit c: eclipse workspace sample!path fit.jar!path fitnesse.jar!path C: eclipse workspace sample Save

Calc Eclipse sample.calc package sample; import fit.columnfixture; public class Calc extends ColumnFixture {

package sample; import fit.columnfixture; public class Calc extends ColumnFixture { public int x; public int y; public int add() { return x+y;

FIT FITNESSE FrontPage TestEasyCalendar

1 30 1 360 from, to, days() days() from to

import java.util.date; import fit.columnfixture; public class EasyCalendarFixture extends ColumnFixture { public Date from; public Date to; public int days() { EasyCalendar ezcal = new EasyCalendar(); return ezcal.getbetweendays(from, to);

import java.util.calendar; import java.util.date; import java.util.gregoriancalendar; public class EasyCalendar { public int getbetweendays(date from, Date to) { Calendar calfrom = date2calendar(from); Calendar calto = date2calendar(to); return getdiffyears(calfrom, calto) * 360 + getdiffmonths(calfrom, calto) *30 + getdiffdays(calfrom, calto); private int getdiffdays(calendar calfrom, Calendar calto) { return getdiffcalendar(calfrom, calto, Calendar.DATE); private int getdiffmonths(calendar calfrom, Calendar calto){ return getdiffcalendar(calfrom, calto, Calendar.MONTH); private int getdiffyears(calendar calfrom, Calendar calto){ return getdiffcalendar(calfrom, calto, Calendar.YEAR); private int getdiffcalendar(calendar calfrom, Calendar calto, int ymd) { return calto.get(ymd) - calfrom.get(ymd); private Calendar date2calendar(date date){ Calendar calendar = new GregorianCalendar(); calendar.settime(date); return calendar; FIT JavaPressVol34

Memo

Memo