JUnit5を使ってテストコードを書こう！（Mac版）

開発環境
PC：Mac
OS：BigSur
IDE：Eclispe(java-2019-12)

※もしwidowsを使用している場合は環境構築の方法やコマンドが違うため
適宜調べながら準備をしてください。



#目次

- テストコードとは？
- JUNITとは？
- 開発環境の準備（ECLIPSE）
- プロジェクトの作成
- JUnit5の追加
- JUnitを使ったコードの書き方を学ぼう
- テストコードを書いてみよう
- テストコードを実行しよう。

## テストコードとは？

- 自分の書いたコードが、想定通りに動いているか確認するためのもの です。

## JUnit(JUnit5)とは？


- Javaのテスト用のフレームワーク
- JUnit5は大きく３つのフレームワーク（junit-jupiter、junit-platform、junit.vintage）から構成されている

###１．junit-jupiter
- JUnit5のフレームワークです。

###２．junit-platform
- テストのランチャーです。凝った起動をするのでなければ必要ないかもしれません。

###３．junit.vintage
- JUnit4、JUnit3の記述で書かれたテストコードをJUnit5環境で実行する際に使用します。JUnit5で記述した場合には必要ありません。


https://speakerdeck.com/irof/dousiyoujunit5


## 開発環境の準備（ECLIPSE）

自分のホームディレクトリにprojectsフォルダを作りましょう
ここからは作っていただいたprojectディレクトリを使用します。


- projectディレクトリを作成して移動する

```
$ cd
$ mkdir projects
$ cd projects
```

✅以下のディレクトリに移動している

```
$ pwd
/Users/#{username}/projects
```


- eclipseを開く
- Launchからnewを押す（画像）
- 今作ったprojectsを選択して画像に赤枠の矢印ボタンを押す(画像) 

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/313771/32785caf-38c9-1aa8-38af-1c2fc0ede654.png)



![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/313771/ce26603f-2491-aa06-b9d7-bbbda10da9da.png)


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/313771/febbbab8-9f97-ca02-0e0e-21e40daf1062.png)


✅下の画面が確認できたら成功です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/313771/b53dc597-d42b-d0ac-da16-1b5a9d9a42d6.png)


・プロジェクトを作成
・プロジェクト名を入力（JUNIT_PROJECT）
・javaのバージョンを選択（世間一般的に使われているjava8）
画像の番号を参考に1〜3までを実行しましょう。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/313771/a590a9ca-3c2e-b6b7-7c2b-29a135ad9f27.png)


Finishを選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/313771/74d3ae1d-e63b-727e-e129-4948a5b8059a.png)


✅作成したプロジェクトが画像通りなら成功です。
お疲れ様でした。これで準備は完了です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/313771/833de769-5a1d-40b4-657e-642d4da0d865.png)


## プロジェクトの作成


- JUnitを追加

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/313771/e4f0f992-5fed-d9ed-67dc-d43e52802231.png)


- Add Libraryを選択

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/313771/1d1980a1-0383-64cb-c6ed-7cf1c3ccc45d.png)


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/313771/309937d9-2788-0e2b-bc88-cf7a379d76da.png)


✅libraries配下にJUNIT5が追加されている（画像）

以上でJUnit5の追加は完了しました。 

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/313771/a533db29-3fe0-3cb4-808b-ca5e5a51851d.png)

##JUnitを使ったコードの書き方を学ぼう。 


- 「src>New>package」の順番で選択

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/313771/bbf5938c-3044-f252-db01-6fccd8f46e91.png)


- co.hogeと入力
- Finishを選択

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/313771/4fc5de01-2e6e-6ed2-473b-e2ffe54abc4f.png)

✅src以下にco.hogeパッケージが追加された。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/313771/ecb2e8c4-6703-a2a0-a2f6-4059871aed75.png)

- 「co.hoge>new>class」を選択

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/313771/3d40d724-15ba-3350-e58c-7b7c481a53b8.png)


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/313771/4d465ef6-b4b9-f59f-306e-2ab914e1aa46.png)


✅ファイルを開いて画像と同じ画面が確認できること

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/313771/4c2aca98-0bdd-885c-8cbb-898a95f982be.png)


## テストコードを書いてみよう

- 今から簡単なテストコードを実行してテストの流れを理解しましょう。
サンプルのテストコードを書いたのでそのままファイルにコピペしてください。
- このコードは変数strに代入した文字列が等しいかを確認するテストです。

```java
package co.hoge;
​
//assertEqualsを静的インポートとして定義します
import static org.junit.Assert.assertEquals;
​
import org.junit.Test;
​
public class JunitClass {
	@Test
	public void setup() {
		String str = "初めてのJunitを使ったプログラム";
		assertEquals("初めてのJunitを使ったプログラム", str);
	}

}
```



何をしてるかわからないと思うので
ざっくりとしたコードを書いた手順を書きました。
コードの後にある番号の順に書いています。
まだ意味はわからなくていいので流れだけ把握しておきましょう。

1. ＠Testアノテーションを書く　
2. setipメソッドを追加
3. String型の変数strに 文字列"初めてのJunitを使ったプログラム"　を代入する
4. assertEqualsメソッドの引数に 初めてのJunitを使ったプログラムとstrを渡す
5. 必要なインポート文を追記する

```java

package co.hoge;
//assertEqualsを静的インポートとして定義します
import static org.junit.Assert.assertEquals;//⑤
import org.junit.Test;//⑤
public class JunitClass {
	@Test //①
	public void setup() {//②
		String str = "初めてのJunitを使ったプログラム";//③
		assertEquals("初めてのJunitを使ったプログラム", str);//④
	}
}
```

## テストコードを実行しよう。

- 「JunitClass.java> Run As > Junit Test」を選択
- ナビゲーションバーにある緑の矢印ボタン（赤枠）を選択 

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/313771/972c8fe8-aae5-3eba-ca0a-a790b98eb637.png)


✅「Errors: 0」と表示されてテストが通っていることを確認する
無事テストが通りましたね。簡単でしたがこれで一通りのテストの流れが学べました。


####次のページ
[JUnit5を使ってテストコードを書こう！②（Mac版）](https://qiita.com/m_masashi/items/a42c032459d1b597d1a2)


参考にした記事（いつもありがとうございます）
--- 

https://youtu.be/SDwqcFwvwY0