@@ -56,7 +56,6 @@ TODOリスト
56
56
--------------------------------------------------
57
57
58
58
.. code-block :: markdown
59
- :caption: TODOリスト
60
59
61
60
- [ ] 数をそのまま文字列に変換する
62
61
- [ ] 3の倍数のときは数の代わりに「Fizz」に変換する
@@ -80,18 +79,34 @@ TODOリスト
80
79
1を渡すと文字列1を返す テスト(Red🟥)
81
80
--------------------------------------------------
82
81
82
+ .. code-block :: php
83
+
84
+ class FizzbuzzTest extends TestCase
85
+ {
86
+ public function test_1を渡すと文字列1を返す(): void
87
+ {
88
+ $this->assertSame(fizzbuzz(1), "1");
89
+ }
90
+ }
83
91
84
92
1を渡すと文字列1を返す 実装(Green🟩)
85
93
--------------------------------------------------
86
94
95
+ .. code-block :: php
96
+
97
+ function fizzbuzz(int $number): string
98
+ {
99
+ return "1";
100
+ }
87
101
88
102
* **仮実装 ** と呼ばれる
89
103
* 作ったテストを間違えていない確認
90
104
91
105
リファクタリング?
92
106
--------------------------------------------------
93
107
94
- この時点ではなし
108
+ * 重複があるか? ーなし
109
+ * Red -> Green -> Refactorの1サイクル終了
95
110
96
111
実装を一般化したい! TODO追加
97
112
--------------------------------------------------
@@ -109,15 +124,32 @@ TODOリスト
109
124
2を渡すと文字列2を返す テスト(Red🟥)
110
125
--------------------------------------------------
111
126
127
+ .. code-block :: php
128
+
129
+ class FizzbuzzTest extends TestCase
130
+ {
131
+ public function test_2を渡すと文字列2を返す(): void
132
+ {
133
+ $this->assertSame(fizzbuzz(2), "2");
134
+ }
135
+ }
112
136
113
137
2を渡すと文字列2を返す 実装(Green🟩)
114
138
--------------------------------------------------
115
139
140
+ .. code-block :: php
141
+
142
+ function fizzbuzz(int $number): string
143
+ {
144
+ return "$number";
145
+ }
146
+
116
147
仮実装から一般化された実装へ(「*三角測量 *」)
117
148
118
149
リファクタリング?
119
150
--------------------------------------------------
120
151
152
+ * 重複があるか?
121
153
* Data Providerを検討できる
122
154
* 発展:具体例を1つずつ追加し、仮実装から一般化した場合、テストケースとして片方消せる
123
155
@@ -126,6 +158,8 @@ t-wadaさんのライブコーディングをどうぞ
126
158
127
159
リズムがつかめるのでオススメ
128
160
161
+ TODO
162
+
129
163
.. テストコードをバーっと書いている。その後実装をバーっと書く
130
164
131
165
小さいテスト駆動開発
@@ -148,6 +182,8 @@ Uncle Bob流
148
182
149
183
.. エラーが出たらRed(AssertionErrorだけでなく、コンパイルエラーなど)
150
184
185
+ .. クラスではなく、fizzbuzz関数でやることになりそう
186
+
151
187
デモをする(左右に開いて)
152
188
============================================================
153
189
0 commit comments