0

私は C# コンソール アプリケーションでプログラムを作成しており、いくつかのメソッドの中で Console.ReadLine() と Console.WriteLine() を使用しています。テスト ケース内で入力を行う方法を知りたいです。

例:

        Console.WriteLine("Enter account number: ");
        accountNumber = Convert.ToInt32(Console.ReadLine());
        Console.WriteLine("Enter name: ");
        cStringName = Convert.ToString(Console.ReadLine());
        name = cStringName;
        Console.WriteLine("Enter balance: ");
        balance = Convert.ToDouble(Console.ReadLine());

        Console.WriteLine("Enter Date: ");
        dateCreated = Convert.ToString(Console.ReadLine());

したがって、基本的にこのメソッドは、アカウントが作成されたかどうかを示す bool を返します。私のテスト ケースでは、このメソッドを呼び出せるようにしたいと考えていますが、実行するには、accountNumber、name、balance、および date を設定する必要があります。これを行う何らかの方法はありますか?または、メソッドにパラメータを追加するだけの最善の方法ですか(私はやりたくない)?

4

1 に答える 1

3

Streamいくつかのパラメーターを受け取るようにメソッドを書き直してください。次に、実際のプログラムで呼び出すときに、Console.OutandConsole.Inをパラメーターとして送信します。テスト ケースから呼び出すときは、代わりにいくつかのメモリ ストリームを送信します。

この種のメソッドを作成してテストしたい場合は、コンソールに直接依存するのではなく、抽象ストリームに依存する必要があります。次に、テスト時にメモリ ストリームの代わりにコンソールを使用できるように、依存性注入(たとえば、ストリームをパラメーターとして渡す) を使用します。

于 2013-11-09T19:18:10.673 に答える