Skip to content

Instantly share code, notes, and snippets.

@kawaveri
Last active June 30, 2017 18:20
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kawaveri/22fca08ef6c11c49da0d62b8bcf75b88 to your computer and use it in GitHub Desktop.
Save kawaveri/22fca08ef6c11c49da0d62b8bcf75b88 to your computer and use it in GitHub Desktop.
けものはいても、のけものはいないことを検証します。
package jp.sub.zico_hihan.javaripark
/**
* 定数をここへ記載します。
*
* Created by Kawaveri on 2017/07/01.
* @see <a href="http://zico-hihan.sub.jp/category/warasibe2/bugtte">カワヴェリ名人のBugって障害報告</a>
*/
public val INHABIT_ANIMAL: String = "けもの"
public val INHABIT_BAG: String = "かばん"
public val INHABIT_BOSS: String = "ラッキービースト"
public val INHABIT_CERULEAN: String = "セルリアン"
package jp.sub.zico_hihan.javaripark
import org.junit.Assert.*
import org.junit.Test
/**
* けものはいても、のけものはいないことを検証します。
*
* Created by Kawaveri on 2017/07/01.
* @see <a href="http://zico-hihan.sub.jp/category/warasibe2/bugtte">カワヴェリ名人のBugって障害報告</a>
*/
class ExampleUnitTest {
var javariPark: JavariPark = JavariPark()
@Test
fun けものはいる() {
assertTrue(javariPark.exists(INHABIT_ANIMAL))
}
@Test
fun セルリアンもいる() {
assertTrue(javariPark.exists(INHABIT_CERULEAN))
}
@Test
fun のけものはいない() {
assertFalse(javariPark.exists("のけもの"))
}
}
package jp.sub.zico_hihan.javaripark
/**
* Javaりパーククラス
*
* Created by Kawaveri on 2017/07/01.
* @see <a href="http://zico-hihan.sub.jp/category/warasibe2/bugtte">カワヴェリ名人のBugって障害報告</a>
*/
class JavariPark {
/**
* 指定したゆかいな仲間がJavaりパークにいるか判定します。
*
* @param s ゆかいな仲間名
* @return Javaりパークに存在したらtrueを返します
*/
fun exists(s: String): Boolean {
// ゆかいな仲間リスト
val inhabitant = listOf(
INHABIT_CERULEAN
, INHABIT_ANIMAL
, INHABIT_BAG
, INHABIT_BOSS
)
// 指定の仲間がリストに含まれていたらtrueを返します
return s in inhabitant
}
}
@kawaveri
Copy link
Author

プロジェクト新規作成。
「4と2+2は同じです」という式が書かれたテストが最初から入ってました。
実行するとグリーン(テストOK)が返ってきます。

@kawaveri
Copy link
Author

kawaveri commented Jun 29, 2017

『「JavariPark」クラス内の「exists()」メソッドに"けもの"という文字を渡すとTrueが返ってくる』という結果を期待したテスト「けものはいる()」を記述。
最初の「setUp()」は初期設定。「@before」の部分で、「テスト実行前にjavariParkオブジェクトを初期化して下さい」とお願いしてます。
「JavariPark」なんてクラスは存在しないので、当然レッド(エラー)となります。

@kawaveri
Copy link
Author

trueを返すメソッド「exists()」を含むクラス「JavariPark」を追加作成。
これで先程のテスト「けものはいる()」を再実行するとグリーン(テストOK)が返ってきます。

@kawaveri
Copy link
Author

もう一つのテスト、「のけものはいない()」を追加。
これも失敗するので、「けもの以外はfalseを返す」ようにプログラムの方を修正。

@kawaveri
Copy link
Author

「セルリアンもいる()」パターンのテストを追加。

@kawaveri
Copy link
Author

exists()メソッドをリファクタリング。
重複する判定式を配列にまとめてスッキリ。

@kawaveri
Copy link
Author

ExampleUnitTestクラスもリファクタリング。
JavariParkオブジェクトの初期化をKotlinらしくスッキリさせてみた。

@kawaveri
Copy link
Author

定数を別ファイル管理にしました。

@kawaveri
Copy link
Author

コメント記載したところで、取り敢えず完成。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment