後で学びたい・詳しく調べたいものを雑多にまとめておくスクラップ
![はる](https://res.cloudinary.com/zenn/image/fetch/s--X-4PoGcC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_70/https://storage.googleapis.com/zenn-user-upload/avatar/577429ad3f.jpeg)
AAAテスト
Arrange-Act-Assert (AAA)
AAAテストとは、テストコードを記述する際の一般的なパターンで、Arrange(準備)、Act(実行)、Assert(確認)の3つのフェーズに分けて記述します¹²³。
- Arrange(準備):テストを実施するために必要となる前提条件や必要なデータを準備します。テスト環境の初期化や依存関係(テストダブルも含む)の構築、テスト対象のメソッドに渡すパラメータなどが含まれます³。
- Act(実行):テスト対象の振る舞いを実行します。具体的には、テスト対象のメソッドの実行などが含まれます³。
- Assert(確認):期待された結果であるかを確認します³。
このパターンを適用することで、テストコードが読みやすくなり、何をテストしているのかが明確になります¹²³。具体的な例としては、以下のようなコードがあります¹:// Arrange var guid = new Guid("01234567-89ab-cdef-0123-456789abcdef"); // Act var actual = guid.ToString("D"); // Assert Assert.AreEqual("01234567-89ab-cdef-0123-456789abcdef", actual);
この例では、ArrangeでGUIDを生成(準備)、ActでToStringメソッドを実行(実行)、そしてAssertで結果が期待通りであることを確認(確認)しています¹。このようにAAAパターンを用いると、テストコードが整理され、何をテストしているのかが一目でわかるようになります¹。このパターンは、単体テストの基本やベストプラクティスとして広く認識されています¹。
ソース: Copilot との会話、 2024/5/26
(1) 速習 AAA : Arrange-Act-Assert による読みやすいテスト - Qiita. https://qiita.com/inasync/items/e0b54e62784710c4b42d.
(2) テストコードのAAA(Arrange、Act、Assert)を理解する. https://qiita.com/jnchito/items/91779b55cae0f4915da5.
(3) UI のテストは AAA パターンより Given-When-Then パターンの方 .... https://zenn.dev/m10maeda/articles/gwt-might-feel-more-natural-than-3a-for-ui-testing.
(4) undefined. https://docs.microsoft.com/ja-jp/visualstudio/test/unit-test-basics?view=vs-2019.
By Microsoft Copilot
参考になりそうなサイト
![はる](https://res.cloudinary.com/zenn/image/fetch/s--X-4PoGcC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_70/https://storage.googleapis.com/zenn-user-upload/avatar/577429ad3f.jpeg)
DDD(ドメイン駆動設計)
ドメイン駆動設計(ドメインくどうせっけい、英語: domain-driven design、DDD)とは、ドメインの専門家からの入力に従ってドメインに一致するようにソフトウェアをモデル化することに焦点を当てるソフトウェア設計手法である[1][2]。オブジェクト指向プログラミングに関しては、ソースコード(クラス名・クラスメソッド・クラス変数)の構造と名称がビジネスドメインと一致させる必要があることを意味する。例えばローンの申し込みを処理するソフトウェアには、LoanApplicationやCustomerなどのクラスと、AcceptOfferやWithdrawどのメソッドが含まれることになる。
ドメイン駆動設計は次の目標に基づいている。
- プロジェクトの主な焦点をコアドメインとドメインロジックに置く。
- ドメインのモデルに基づく複雑な設計。
- 特定のドメインの問題に対処する概念モデルを繰り返し改良するために、技術とドメインの専門家の間で創造的なコラボレーションを開始する
参考になりそうなサイト
![はる](https://res.cloudinary.com/zenn/image/fetch/s--X-4PoGcC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_70/https://storage.googleapis.com/zenn-user-upload/avatar/577429ad3f.jpeg)
良いREADMEとは?
良いREADMEとはどんなものなのか?
↓とか参考になりそう。