C# 添加用于在C中测试方法的命令行输入#
我正在C#Console应用程序中编写一个程序,在一些方法中,我有Console.ReadLine()和Console.WriteLine()。我想知道如何在测试用例中给出输入 例如: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: ");
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
作为参数发送进来。当从测试用例调用时,改为发送一些内存流
在编写此类方法并希望对其进行测试时,它们不应直接依赖于控制台,而应依赖于抽象流。然后使用依赖注入(例如,将流作为参数传入),以便在测试时能够用控制台替换内存流。为什么不添加参数?确定是否应创建帐户的方法不应知道或关心数据来自何处,因此不应绑定到命令行。提出测试策略时遇到的问题是一个明确的指示。为什么不添加参数?确定是否应创建帐户的方法不应知道或关心数据来自何处,因此不应绑定到命令行。提出测试策略时遇到的问题是一个明确的指示。为什么不添加参数?确定是否应创建帐户的方法不应知道或关心数据来自何处,因此不应绑定到命令行。提出测试策略时遇到的问题是一个明确的指示。为什么不添加参数?确定是否应创建帐户的方法不应知道或关心数据来自何处,因此不应绑定到命令行。您在提出测试策略时遇到的问题是一个明确的指示。