【发布时间】:2018-04-29 00:48:43
【问题描述】:
我正在为质数程序编写一个测试用例。我正在尝试将我的PrimeEvaluator 方法的输出与我的expectedFactors1 字符串进行比较。 PrimeEvaluator 是一个 void 所以我试图从控制台读取输出。
public void PrimeTest()
{
//arange
int number = 738;
string expectedFactors1 = "2,3,3,41";
string actual;
//act
Primes.Program.PrimeEvaluator( number);
actual = Console.ReadLine();
//assert
Assert.AreEqual(expectedFactors1,actual);
}
当我运行我的单元测试时,什么也没有发生。我知道这可能是错误的,但有人能给我一些关于如何从PrimeEvaluator 捕获数字输出的见解吗?
【问题讨论】:
-
显示主要评估者
-
为什么不能让您的 PrimeEvaluator 方法返回答案,以便您可以以任何您认为合适的方式处理输出?只需让该方法返回一个整数列表即可。
-
void 是唯一看起来合适的返回类型,因为该类会检查多个条件。我试图使它成为一个 int 但它说“并非所有代码路径都返回一个值”
-
@MickyD 愚蠢的模拟方法?你知道单元测试是什么意思吗?在将他的主要评估方法与控制台输出相结合时,你给了他糟糕的建议。
-
@PmanAce 我不敢苟同。无论应用程序是否为 Web,用户界面测试均采用相同的尽职调查方法; WPF; WinForms 或控制台应用程序。一个 UI 就是一个 UI 就是一个 UI。测试破解打开 API 只是为了直接测试方法的唯一好处是增加测试代码覆盖率,顺便说一句,这在证明我的飞行管理计算机正常工作方面几乎没有什么作用,因为它没有测试整个用例。玩得开心嘲笑而不是测试真正重要的东西。 mickyd.wordpress.com/2016/05/25/…
标签: c# unit-testing console-application readline prime-factoring