57
Kronos Engineer Conference 2008 Summer 1

Beyond JUnit3

Embed Size (px)

DESCRIPTION

会社の勉強会で使用した、JUnit4とTestNGについての資料です。 ソースコードはhttp://www.mediafire.com/file/2kp9zjx6lzn/Enkai.zipにあります。

Citation preview

Page 1: Beyond JUnit3

Kronos Engineer Conference 2008 Summer

1

Page 2: Beyond JUnit3

Java is Enterprise Language.

2

Page 3: Beyond JUnit3

Beyond JUnit3

3

Page 4: Beyond JUnit3

今日のまとめ

4

Page 5: Beyond JUnit3

JUnit3は古くなってしまった

5

Page 6: Beyond JUnit3

新しいF/Wに変えていこう

6

Page 7: Beyond JUnit3

開発効率が上がるから

7

Page 8: Beyond JUnit3

それはTestNGかJUnit4だよ

8

Page 9: Beyond JUnit3

ご清聴ありがとうございました(マテ

9

Page 10: Beyond JUnit3

JUnit3の弱点

10

Page 11: Beyond JUnit3

1.ステートフルでない

11

Page 12: Beyond JUnit3

BeginningTest.java

12

Page 13: Beyond JUnit3

2.テストメソッドごとにインスタンスを作る

13

Page 14: Beyond JUnit3

3.メソッド名が固定

14

Page 15: Beyond JUnit3

JUnit3Sample.java

15

Page 16: Beyond JUnit3

4.例外テストが複雑

16

Page 17: Beyond JUnit3

JUnit3Exception.java

17

Page 18: Beyond JUnit3

5.引数が渡せない

18

Page 19: Beyond JUnit3

JUnit3Sample.java

19

Page 20: Beyond JUnit3

6.新たな技術を用いていない

20

Page 21: Beyond JUnit3

e.g. アノテーション

21

Page 22: Beyond JUnit3

7.貧弱な前後処理

22

Page 23: Beyond JUnit3

JUnit3Sample.java

23

Page 24: Beyond JUnit3

これらを乗り越えたのがTestNG

24

Page 25: Beyond JUnit3

TestNGからインスパイアされたのがJUnit4

25

Page 26: Beyond JUnit3

そういう図式です

26

Page 27: Beyond JUnit3

実際にはこんなに違います

27

Page 28: Beyond JUnit3

Michael Minella - Michael Minella <http://www.michaelminella.com/blog/2.html>

28

Page 29: Beyond JUnit3

ただし、TestNGは

29

Page 30: Beyond JUnit3

JUnitの拡張と連携できます

30

Page 31: Beyond JUnit3

既存のJUnitテストを

31

Page 32: Beyond JUnit3

コンバートする機能もあります

32

Page 33: Beyond JUnit3

JUnit4

33

Page 34: Beyond JUnit3

JUnit4Sample.java

34

Page 35: Beyond JUnit3

アノテーション

35

Page 36: Beyond JUnit3

• @Test

• @Before/@After

• @BeforeClass/@AfterClass

36

Page 37: Beyond JUnit3

例外テスト

37

Page 38: Beyond JUnit3

TestNG

38

Page 39: Beyond JUnit3

TestNGSample.java

39

Page 40: Beyond JUnit3

• @BeforeMethod/@AfterMethod

• @BeforeClass/@AfterClass

• @BeforeTest/@AfterTest

• @BeoferSuite/@AfterSuite

40

Page 41: Beyond JUnit3

設定ファイルtestng.xml

41

Page 42: Beyond JUnit3

テストプログラムと実行方法を分離する

42

Page 43: Beyond JUnit3

データ駆動テスト

43

Page 44: Beyond JUnit3

@DataProvider

44

Page 45: Beyond JUnit3

DataProviderSample.java

45

Page 46: Beyond JUnit3

JUnitでは、コンストラクタのみ

46

Page 47: Beyond JUnit3

ParameterSample.java

47

Page 48: Beyond JUnit3

マルチスレッドテスト

48

Page 49: Beyond JUnit3

MultiThreadSample.java

49

Page 50: Beyond JUnit3

テストのグループ化

50

Page 51: Beyond JUnit3

テスト間の依存関係を設定可

51

Page 52: Beyond JUnit3

GroupSample.java

52

Page 53: Beyond JUnit3

終わりに

53

Page 54: Beyond JUnit3

技術の進歩は

54

Page 55: Beyond JUnit3

効率をよくする

55

Page 56: Beyond JUnit3

プロジェクトに合わせて

56

Page 57: Beyond JUnit3

使うプロダクトを考えましょう

57