さて、これは危険な質問かもしれません。私はしばらく単体テストを行っていましたが、何らかの理由で今朝起きて、この質問を自問しました。
インターフェイス UserFactory があり、メソッド CreateUser があるとします。
ある時点で、ユーザー権利を作成する必要がありますか? そこで、適切な場所で UserFactory に対して CreateUser が呼び出されたかどうかを確認するテストを作成します。
これで、単体テストは実際のコードにかなり結合されました。これで問題ありません。でもちょっとやり過ぎかな?このように、テストを中断する唯一の方法は、CreateUser への呼び出しを呼び出さないことです。その実装などはチェックしていませんが、インターフェースが呼び出されていることをチェックしているだけです。しかし、誰がその呼び出しを削除しても、テストは失敗し、最終的にステップから検証ステートメントを削除して、CreateUser が呼び出されたことを確認します。
私はこれが何度も何度も起こるのを見てきました。
誰かが私に光を取り戻して、モックされたオブジェクトのメソッドが呼び出されたことを確認することが有益である理由を説明できますか? CreateUser はコードの後半部分でダミーのユーザーを返す必要があると言いますが、それらが呼び出されたかどうかを単純に確認するだけの場所では、それらを設定すると便利な理由がわかります。
ありがとう!