Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 添加用于在C中测试方法的命令行输入#_C#_Unit Testing_Console Application_Readline - Fatal编程技术网

C# 添加用于在C中测试方法的命令行输入#

C# 添加用于在C中测试方法的命令行输入#,c#,unit-testing,console-application,readline,C#,Unit Testing,Console Application,Readline,我正在C#Console应用程序中编写一个程序,在一些方法中,我有Console.ReadLine()和Console.WriteLine()。我想知道如何在测试用例中给出输入 例如: Console.WriteLine("Enter account number: "); accountNumber = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("Enter name: ");

我正在C#Console应用程序中编写一个程序,在一些方法中,我有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。有什么方法可以做到这一点吗?或者,将参数添加到方法中(我不喜欢这样做)是最好的方法吗?

重写该方法,使其将两个
作为参数。然后,当您在实际程序中调用它时,将
Console.Out
Console.in
作为参数发送进来。当从测试用例调用时,改为发送一些内存流


在编写此类方法并希望对其进行测试时,它们不应直接依赖于控制台,而应依赖于抽象流。然后使用依赖项注入(例如,将流作为参数传入),以便在测试时能够用控制台替换内存流。

重写该方法,使其以两个
流作为参数。然后,当您在实际程序中调用它时,将
Console.Out
Console.in
作为参数发送进来。当从测试用例调用时,改为发送一些内存流


在编写此类方法并希望对其进行测试时,它们不应直接依赖于控制台,而应依赖于抽象流。然后使用依赖项注入(例如,将流作为参数传入),以便在测试时能够用控制台替换内存流。

重写该方法,使其以两个
流作为参数。然后,当您在实际程序中调用它时,将
Console.Out
Console.in
作为参数发送进来。当从测试用例调用时,改为发送一些内存流


在编写此类方法并希望对其进行测试时,它们不应直接依赖于控制台,而应依赖于抽象流。然后使用依赖项注入(例如,将流作为参数传入),以便在测试时能够用控制台替换内存流。

重写该方法,使其以两个
流作为参数。然后,当您在实际程序中调用它时,将
Console.Out
Console.in
作为参数发送进来。当从测试用例调用时,改为发送一些内存流


在编写此类方法并希望对其进行测试时,它们不应直接依赖于控制台,而应依赖于抽象流。然后使用依赖注入(例如,将流作为参数传入),以便在测试时能够用控制台替换内存流。

为什么不添加参数?确定是否应创建帐户的方法不应知道或关心数据来自何处,因此不应绑定到命令行。提出测试策略时遇到的问题是一个明确的指示。为什么不添加参数?确定是否应创建帐户的方法不应知道或关心数据来自何处,因此不应绑定到命令行。提出测试策略时遇到的问题是一个明确的指示。为什么不添加参数?确定是否应创建帐户的方法不应知道或关心数据来自何处,因此不应绑定到命令行。提出测试策略时遇到的问题是一个明确的指示。为什么不添加参数?确定是否应创建帐户的方法不应知道或关心数据来自何处,因此不应绑定到命令行。您在提出测试策略时遇到的问题是一个明确的指示。