質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.34%
ユニットテスト

ユニットテストは、システムのテスト手法の一つで、個々のモジュールを対象としたテストの事を指します。対象のモジュールが要求や性能を満たしているか確認する為に実行します。

ドメイン駆動設計

ドメイン駆動設計(Domain-driven design, DDD)とは、ソフトウェアの設計手法、および設計思想や哲学のことです。ドメインモデル構築の際に、設計上の判断を決定する枠組みとドメイン設計に関して議論するボキャブラリを提供するものです。

意見交換

クローズ

2回答

865閲覧

検索処理の統合テストは全パターンをテストするべきか

rashild

総合スコア27

ユニットテスト

ユニットテストは、システムのテスト手法の一つで、個々のモジュールを対象としたテストの事を指します。対象のモジュールが要求や性能を満たしているか確認する為に実行します。

ドメイン駆動設計

ドメイン駆動設計(Domain-driven design, DDD)とは、ソフトウェアの設計手法、および設計思想や哲学のことです。ドメインモデル構築の際に、設計上の判断を決定する枠組みとドメイン設計に関して議論するボキャブラリを提供するものです。

0グッド

2クリップ

投稿2023/04/02 03:29

0

2

検索処理の統合テストの書き方

「単体テストの考え方・使い方」という書籍を読んで
単体テスト・統合テストを書いているのですが、検索処理についてのテストの書き方が分かりません。
検索処理はRepositoryクラスに実装していて、連想配列を引数として受け取り
If文でKeyが存在する場合のみ、各項目についてWhere句をクエリビルダに追加しているような実装です。

渡された連想配列によって返すオブジェクトの配列が異なるため
・連想配列の取りうる全パターンをテストするのか
・全てのIF文を通るような連想配列を渡して、1つのテストで完結させるのか
など

他の方がどのようにテストを作成しているのかお聞きしたいです。
よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

回答2

#1

Zuishin

総合スコア28669

投稿2023/04/02 03:42

検索すべきキーが含まれていない場合、一つ含まれている場合、複数含まれている場合の三パターンで網羅できないのであれば、テストされる処理は更に複数の抽象化された処理に分解できるはずなので、分解してそれぞれにテストを作るのが良いでしょう。

複数の if 文を使うというところ、また

渡された連想配列によって返すオブジェクトの配列が異なるため

というところを見ても、そのように思います。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#2

rashild

総合スコア27

投稿2023/04/02 04:05

各キーについて3パターンのテストを作成するということでしょうか?
そうであれば、今回の検索処理はキーに対して
>複数含まれている場合(配列の場合?)
は起こり得ないので、各キー(検索条件)に対して2つずつテストを書くのであれば
現実的だなと思いました。

ご回答ありがとうございした。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

最新の回答から1ヶ月経過したため この意見交換はクローズされました

意見をやりとりしたい話題がある場合は質問してみましょう!

質問する

関連した質問