--- tags: PHP, テスト, ListNavigtor --- # LNのPHP テストについて ###### tags: `PHP`, `テスト`, `ListNavigtor` **関連リンク** [LN PHP Unit テスト実行方法](/QBO0E_4ARTaaQinDHhSGHQ) [LN テスト 会議議事録(今後つけていく)](/8HI_KJ_rT-ew0e0ezPFUhw) ### 概要 LNでバックエンド側でテストコードを新しく作成するため、 そのためのやり方やどう運用していくかについての内容をまとめる ### なぜやるのか ListNavigatorはユーザー数も既にある程度いて、リファクタリングで今後システムのコードの改善をしていく必要があり、そのためにテストコードがあったらリファクタリングがやりやすいため。 又、SceneLiveの開発部全体でテストについても共通項目として、設けられるため、今後部内の標準化においてもテストコードは必要そう。 ### 課題について - 技術的 - 使うテストツールについて - [ ] PHP Unit でテストを行っていいかの確認 - PHP Unitで単体テスト実行した場合は、1API 2秒前後になりそう ↑実行時間に関しては、Sqlite でテストをすれば改善できそう。 - PHP Unitでテストは実行できるのは確認済 - テストの作り方 ある程度決まった後にテストを作成しつつ、固まってきたらドキュメントに書き起こす - [ ] テストファイルのディレクトリ構造 - どこにどの様なファイルを作る? - [ ] テストのクラス設計 - テストクラスは何単位で作成する?(API?リポジトリ) - どのようなテストが必要か?(単体テスト, 結合テスト etc..) - [ ] メソッドの作り方 - 正常系と異常系、それぞれどのように作る? - スコープ・考え方 運用にあたっての課題や、今回のテストコードでどこまでを保証するかについて - [ ] 既存APIについてのテスト 既存のAPIにテストを後から書いていくとなるとその分工数が増えるので、 どうするかの相談 - [ ] テストのレビューをどうするか 新規機能や既存APIに対してテストコードのレビューをPRに含めて、 レビュワーがテストコードの内容も含めてレビューする? ---