Open3

後で学びたい・詳しく調べたいものを雑多にまとめておくスクラップ

はるはる

AAAテスト

Arrange-Act-Assert (AAA)

AAAテストとは、テストコードを記述する際の一般的なパターンで、Arrange(準備)、Act(実行)、Assert(確認)の3つのフェーズに分けて記述します¹²³。

  1. Arrange(準備):テストを実施するために必要となる前提条件や必要なデータを準備します。テスト環境の初期化や依存関係(テストダブルも含む)の構築、テスト対象のメソッドに渡すパラメータなどが含まれます³。
  2. Act(実行):テスト対象の振る舞いを実行します。具体的には、テスト対象のメソッドの実行などが含まれます³。
  3. 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://qiita.com/inasync/items/e0b54e62784710c4b42d

https://qiita.com/jnchito/items/91779b55cae0f4915da5

https://qiita.com/sugarperson/items/5a201a05cff392cceda6

はるはる

DDD(ドメイン駆動設計)

ドメイン駆動設計(ドメインくどうせっけい、英語: domain-driven design、DDD)とは、ドメインの専門家からの入力に従ってドメインに一致するようにソフトウェアをモデル化することに焦点を当てるソフトウェア設計手法である[1][2]。オブジェクト指向プログラミングに関しては、ソースコード(クラス名・クラスメソッド・クラス変数)の構造と名称がビジネスドメインと一致させる必要があることを意味する。例えばローンの申し込みを処理するソフトウェアには、LoanApplicationやCustomerなどのクラスと、AcceptOfferやWithdrawどのメソッドが含まれることになる。
ドメイン駆動設計は次の目標に基づいている。

  • プロジェクトの主な焦点をコアドメインとドメインロジックに置く。
  • ドメインのモデルに基づく複雑な設計。
  • 特定のドメインの問題に対処する概念モデルを繰り返し改良するために、技術とドメインの専門家の間で創造的なコラボレーションを開始する

Wikipediaより

参考になりそうなサイト

https://qiita.com/kim_t0814/items/1a50bbdd8ef3ec780185
https://qiita.com/yu-saito-ceres/items/f73262cedcdd6e8e75c8