「C# を使用したプロフェッショナルなテスト駆動開発」を読み終えたばかりで、自分のコードで 100% のカバレッジを達成する方法を見つけようとしています。次のように実装されたメソッドで満たされたリポジトリクラスに到達するまでは、すべて問題ありません。
public IEnumerable<MyDataContract> LoadConditional(bool isCondition)
{
const string QUERY = @"SELECT ...fields... FROM MyData WHERE [IsCondition] = @IsCondition";
return DataAccessor.ReadMyContracts(QUERY, isCondition); // something, something...
}
私はこれについてしばらく考えていましたが、インターネット上でこの質問に直接答える答えを見つけることができませんでした.
SQL関連のビジネスが別のアセンブリに存在することを示唆するものを読みました。私はこれを必要としませんし、そこに行かなければならないとは思いません。これは、コード カバレッジから見ると、かなり表面的な変更です。
単体テスト用にデータベースを接続できることを読みました (これは以前に行ったことがあります)。しかし、これはまあまあ… わからない、気分が悪い。テストは遅く、メンテナンスが大幅に増加します。
私の直感は、私が言及した最後のビットがなければ、このメソッドは単体テストできないということです。この問題をどのように見る必要がありますか?