hello プロジェクトを右クリックして[チーム]-[プロジェクトの共用]を選択する。
リポジトリー・タイプは「Git」を選択して「次へ」をクリック。
Gitリポジトリーの構成で、リポジトリーの「作成」をクリックして、個人ドライブの適当なフォルダを指定して「完了」をクリック。
こちらのメニューから「フィルター」を選択する。

フィルターのダイアログで「.*リソース」のチェックを外して「OK」をクリック。
.settings などを右クリックして[チーム]-[無視]を選択すると、.gitignore ファイルが作られる。
.gitignore を開いて、以下の内容を記述する。
/.settings/
*.class
*.jar
*.war
*.ear
# Eclipse
.project
.classpath
.settings
helloプロジェクトを右クリックして[チーム]-[コミット] を選択すると、Gitステージングが表示される。
.gitignore と HelloWorld.java をステージされた変更に移動する。
コミットメッセージに「最初のコミット」などのメッセージを記入して「コミット」をクリックする。
FizzBuzzでテスト駆動開発(TDD)の練習をしてみる
hello パッケージを右クリックして新規クラスで FizzBuzz を作成する。
FizzBuzz.java
package hello;
public class FizzBuzz {
public String say(int i) {
return "1";
}
}
プロジェクトを右クリックして[チーム]-[コミット] を選択する。
FizzBuzz.javaをステージされた変更に移動してコミットメッセージを入力して[コミット]をクリック。
FizzBuzz.javaを右クリックし、[新規]-[その他]を選択。
JUnitテスト・ケースを選択。
FizBuzzTest.java
package hello;
import static org.junit.jupiter.api.Assertions.*;
import org.junit.jupiter.api.Test;
class FizzBuzzTest {
@Test
void testSay() {
FizzBuzz fb = new FizzBuzz();
String s = fb.say(1);
assertEquals("1", s);
}
}
FizzBuzzTestに2を追加する。
package hello;
import static org.junit.jupiter.api.Assertions.*;
import org.junit.jupiter.api.Test;
class FizzBuzzTest {
@Test
void testSay() {
FizzBuzz fb = new FizzBuzz();
String s = fb.say(1);
assertEquals("1", s);
s = fb.say(2);
assertEquals("2", s);
}
}
テストの再実行を行うとエラーになるので、FizzBuzzクラスを修正する。
package hello;
public class FizzBuzz {
public String say(int i) {
return String.valueOf(i);
}
}
テストの再実行を行うと、テストがグリーンになった!
Gitにコミットする。
さらにテストを追加する。
3回目はFizzと返してほしいので、テストを分けてみる。
package hello;
import static org.junit.jupiter.api.Assertions.*;
import org.junit.jupiter.api.Test;
class FizzBuzzTest {
@Test
void testSay() {
FizzBuzz fb = new FizzBuzz();
String s = fb.say(1);
assertEquals("1", s);
s = fb.say(2);
assertEquals("2", s);
}
@Test
void test3の場合はFizzを返す() {
FizzBuzz fb = new FizzBuzz();
String s = fb.say(3);
assertEquals("Fizz", s);
}
}
FizzBuzz.java を修正する。
package hello;
public class FizzBuzz {
public String say(int i) {
if (i == 3) return "Fizz";
return String.valueOf(i);
}
}
テストの再実行を行ったらグリーンになったので、コミットする。
4の場合と5の場合のテストを追加する。
@Test
void test4の場合は4を返す() {
FizzBuzz fb = new FizzBuzz();
String s = fb.say(4);
assertEquals("4", s);
}
@Test
void test5の場合はBuzzを返す() {
FizzBuzz fb = new FizzBuzz();
String s = fb.say(5);
assertEquals("Buzz", s);
}
5の場合がエラーになるのでFizzBuzzを修正する。
package hello;
public class FizzBuzz {
public String say(int i) {
if (i == 3) return "Fizz";
if (i == 5) return "Buzz";
return String.valueOf(i);
}
}
テストの再実行を行ったらグリーンになったので、コミットする。
6の場合のテストを追加する。
@Test
void test6の場合はFizzを返す() {
FizzBuzz fb = new FizzBuzz();
String s = fb.say(6);
assertEquals("Fizz", s);
}
6の場合のテストがエラーになるのでFizzBuzzを修正する。
package hello;
public class FizzBuzz {
public String say(int i) {
if (i % 3 == 0) return "Fizz";
if (i == 5) return "Buzz";
return String.valueOf(i);
}
}
9と10の場合のテストを追加する。
@Test
void test9と10のテスト() {
FizzBuzz fb = new FizzBuzz();
String s = fb.say(9);
assertEquals("Fizz", s);
s = fb.say(10);
assertEquals("Buzz", s);
}
10の場合にエラーになるのでFizzBuzzを修正する。
package hello;
public class FizzBuzz {
public String say(int i) {
if (i % 3 == 0) return "Fizz";
if (i % 5 == 0) return "Buzz";
return String.valueOf(i);
}
}
11~14は従来のパターンで対応できているので、15の場合のテストを追加する。
@Test
void test15の場合はFizzBuzzを返す() {
FizzBuzz fb = new FizzBuzz();
String s = fb.say(15);
assertEquals("FizzBuzz", s);
}
FizzBuzzを修正する。
package hello;
public class FizzBuzz {
public String say(int i) {
if (i % 15 == 0) return "FizzBuzz";
if (i % 3 == 0) return "Fizz";
if (i % 5 == 0) return "Buzz";
return String.valueOf(i);
}
}
テストにパスしたのでコミットする。
ここまでで、FizzBuzzのTDDの練習は終わり。