だから私は手動のデータベース操作に重いいくつかのレガシーコードに取り組んでいます。ここでは品質の類似性を維持しようとしているので、可能な限りTDDを使用します。
私が取り組んでいるコードは、入力する必要があります。たとえば、List<Foo>
機能しているFooに必要なすべてのフィールドを返すDataReaderからのコードです。ただし、コードが実際に1つのデータベース行ごとに1つのリスト項目を返すことを確認したい場合は、次のようなテストコードを記述しています。
Expect.Call(reader.Read()).Return(true);
Expect.Call(reader["foo_id"]).Return((long) 1);
// ....
Expect.Call(reader.Read()).Return(true);
Expect.Call(reader["foo_id"]).Return((long) 2);
// ....
Expect.Call(reader.Read()).Return(false);
これもかなり退屈で簡単に壊れます。
結果が脆弱なテストの大きな混乱にならないように、この問題にどのように取り組む必要がありますか?
ところで、私は現在これにRhino.Mocksを使用していますが、結果が十分に説得力がある場合は変更できます。代替案がTypeMockでない限り、彼らのEULAは私の好みには少し怖すぎたので、最後にチェックしました。
編集:私も現在C#2に制限されています。