狠狠撸

狠狠撸Share a Scribd company logo
日本語によるJUnitの
拡張について
福原和朗
第五.五回 #渋谷java
2014-04-05
自己紹介
? 福原和朗 @kazurof
? アクシオヘリックス(株) http://www.axiohelix.com/
? 客先常駐で開発やってます
? JavaでWebサービス
? Titanium を多少
2
とある勉強会にて
3
この行を日本語
で書けないか?
書いてみた
4
書けただけで
美しくない
5
美しい
日本語を書きたい
6
目標設定
? テストクラスを日本語で書けるようにする。
? 英語をなくす。
? 滑らかで自然な日本語。
? JUnit 4.11の機能を全部網羅する。
? experimental はやらない
? 命名:“日本語ユニット”
? NiUnit 「にうにっと」
こんなコードが書けます
7
JUnit NiUnit
機能概要
? 日本語による検証メソッド
? Hamcrestで提供している機能を網羅
? @Test , @Before, @After 相当のアノテーション
? テストの組織化 (@Suite 相当の機能)
? @Parameterized 相当の機能
8
最も簡単なテスト
9
日本語による検証メソッド
10
タイムアウトと想定例外
11
文字列の検証
12
否定表現
論理演算子
13
“かつ”メソッド
allOf 相当品
“または”メソッド
anyOf 相当品
論理演算子 (続)
14
組み合わせても使えます。
“かつ”の優先度が高い
括弧
15
『 』を使いたかったが Java文法的にNG
開かっこ
ロシア文字
閉かっこ
それっぽい漢字
日本語の処理
16
S G
値
」
」ではないまたは
かつ
演算子
(同じである で始まる で始まらない
など)
「
小ネタ的工夫
17
返り値の型を工夫し、文として
可能なメソッドのみ使える
小ネタ的工夫(2)
18
同様に可能なメソッド
のみ使えるようにする。
@事前処理 @事後処理
19
@before, @after 相当品
@クラス事前(後)処理
もあります。
テストをまとめて実行
20
? @Suite 相当品
@パラメタライズドテスト
21
@パラメタライズドテスト(続)
22
制限事項
? Rules
? assureThat
? “を前提とする”的な
? JDK8
23
やってみる?
? https://github.com/kazurof/NiUnit
? さすがに日本語のリポジトリ名はNGでした…
24
まとめ
? NiUnitで日本語でテストメソッドが書けます。
? 特にアサーション
? アサーションをしている箇所が目立ちます。
? 本番ではやらないでください。
? たまにはヘンテコなのも良いかもしれません。
25

More Related Content

日本语による闯鲍苍颈迟の拡张について