|
4 | 4 | 壊してないかなという **不安** に向き合う
|
5 | 5 | ============================================================
|
6 | 6 |
|
7 |
| -* 変更しやすいコード(=本トークにおける良いコード)に近づけていく |
8 |
| -* 例:よりよい書き方を知り、それに書き換える |
9 |
| -* 変更するたびに、壊していないか不安 |
| 7 | +* 良いコード(変更しやすい、言語の機能を引き出している)に近づけていく |
| 8 | +* 例:全霊をかけたコードだが、よりよい書き方を知って書き換える |
| 9 | +* 変更するたびに、 **壊していないか** 不安 |
10 | 10 |
|
11 | 11 | 例:FizzBuzz
|
12 | 12 | --------------------------------------------------
|
|
23 | 23 | 書き換えで振る舞いを変えていないだろうか?
|
24 | 24 | ============================================================
|
25 | 25 |
|
26 |
| -**不安** に対処するいくつかのアプローチ |
| 26 | +**不安** に対処する3つのアプローチ |
27 | 27 |
|
28 | 28 | (A) 祈る 🙏
|
29 | 29 | --------------------------------------------------
|
|
44 | 44 |
|
45 | 45 | * 安心できるが、 *関数の数が増えて* いくと現実的ではなさそう
|
46 | 46 |
|
| 47 | +参考:PHPの対話シェル 🏃♂️ (skip) |
| 48 | +-------------------------------------------------- |
| 49 | + |
| 50 | +* https://www.php.net/manual/ja/features.commandline.interactive.php |
| 51 | +* `はじめてのPHPコマンドラインオプション <https://speakerdeck.com/kotomin_m/hazimetenophpkomandorainopusiyon-phpkai-fa-wojin-yoritiyotutole-sikusuru?slide=8>`__ (ことみんさん。PHPカンファレンス沖縄2023)で知りました |
| 52 | + |
47 | 53 | (C) コードを書いて動作確認 🤖
|
48 | 54 | --------------------------------------------------
|
49 | 55 |
|
50 | 56 | * この発表の本題
|
51 | 57 | * 「手で動作確認」の **自動化** (テストコードを書く)
|
52 |
| -* プログラムで使う部品のコードは、プログラムを書いて動作確認するという考え方 |
| 58 | +* プログラムで使う部品のコードは、プログラムを書いて動作確認するという考え方(ref: ちょうぜつ本) |
53 | 59 |
|
54 |
| -テストコードの世界へようこそ |
| 60 | +テストコードの世界へようこそ🎉 |
55 | 61 | ============================================================
|
56 | 62 |
|
57 |
| -初見だと独特と感じる用語を紹介 |
| 63 | +初見だと独特と感じる **用語** を紹介 |
58 | 64 |
|
59 | 65 | テストケース
|
60 | 66 | --------------------------------------------------
|
61 | 67 |
|
62 |
| -* 1つ1つのテスト |
| 68 | +* 1つ1つのテストのこと |
63 | 69 | * テストコードがある=複数のテストケースがある
|
64 | 70 |
|
65 | 71 | 実行結果
|
66 | 72 | --------------------------------------------------
|
67 | 73 |
|
68 |
| -複数のテストケースをすべて実行すると |
| 74 | +テストケースをすべて実行すると |
69 | 75 |
|
70 | 76 | * **pass** (全て通る・成功)
|
71 | 77 | * fail (1つでも失敗・落ちる)
|
72 | 78 |
|
73 | 79 | テストにおける *値* の呼び方
|
74 | 80 | --------------------------------------------------
|
75 | 81 |
|
| 82 | +* テスト対象(の関数やメソッド)を実行した値: **actual** value |
| 83 | +* 期待結果: **expected** value |
| 84 | + |
| 85 | +呼び方を反映した変数名 |
| 86 | +-------------------------------------------------- |
| 87 | + |
76 | 88 | .. code-block:: php
|
77 | 89 |
|
78 |
| - php > $actual = fizzbuzz(15); // テスト対象を実行した値 (actual value) |
79 |
| - php > $expected = "FizzBuzz"; // 期待結果 (expected value) |
| 90 | + php > $actual = fizzbuzz(15); // fizzbuzz関数がテスト対象 |
| 91 | + php > $expected = "FizzBuzz"; |
80 | 92 | php > var_dump($actual === $expected);
|
81 | 93 | bool(true)
|
82 | 94 |
|
|
105 | 117 | --------------------------------------------------
|
106 | 118 |
|
107 | 119 | * 実装に加えてテストコードも書く
|
108 |
| -* でも、デメリット **<< メリット** だと思うから、📣練習して書けるようになるんだ! |
| 120 | +* でも、デメリット **<< メリット** だと思うので、書いていく(書ける方を増やしたい!) |
109 | 121 |
|
110 | 122 | 🥟テストコードは良いコードを書く力をつける下地(N=1)
|
111 | 123 | ============================================================
|
|
0 commit comments