问题描述
到目前为止,我有一个简单的测试方法,只是为了在 netcore mvc 应用程序上调用 Program.cs 中的静态方法 Main。
我的断言从未被命中,即使在 5 或 10 分钟之后,测试也会在测试资源管理器中继续运行。是因为程序需要终止还是我的测试错误?
感谢建议
谢谢 罗布
[TestClass]
public class ProgramTests
{
[TestMethod]
public void ExecMain()
{
var args = new string[] { };
Program.Main(args);
// never hits test condition and test keeps running
Assert.IsTrue(true);
}
}
解决方法
您的实施并没有错,因为您遵循了 AAA 实践(安排、行动、断言)。
然而,您似乎还没有弄清楚要测试什么。您是否希望 Program.Main 永远运行?还是应该在某个时候终止? (某事或某人可能会导致终止。)
如果你能找出如何导致终止,你应该在你的测试中做到这一点,然后做出断言(这显然反映了你对终止的期望。)