TDD 経由でストリーム型のプロパティを使用するクラスを作成したいと考えています。このクラスは、ファイル システムとの間でファイルを開いたり、書き込んだりします。以下のように:
public class Csv
{
private TextReader streamReader; //TextReader is an abstract class, parent of streamReader
private TextWriter streamWriter; //similar to TextReader and StreamWriter
//Read(), Write(), and other methods that are specific to CSV.
}
これでテスト可能です。
問題は、両方ではなく、各インスタンスの読み取りまたは書き込みのいずれかをサポートすることです。Csv は両方ではなく、読み取りまたは書き込みのいずれかをサポートするためです。
別の問題として、クラスの呼び出し元は fileName のみを提供する必要があります。
3 番目の問題、理想的には、Open(string fileName) が必要です。しかし、それは必要ないかもしれません。