【问题标题】:How to test Program.Main in TestMethod in MSTest project如何在 MSTest 项目的 TestMethod 中测试 Program.Main
【发布时间】:2021-01-29 16:31:14
【问题描述】:

到目前为止,我有一个简单的测试方法,只是在 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);
    }
}

【问题讨论】:

  • 显示Program.Main(被测对象)。你想测试什么?预期的行为是什么?

标签: c# asp.net-mvc unit-testing asp.net-core mstest


【解决方案1】:

您的实施没有错,因为您遵循 AAA 实践(安排、行动、断言)。

但是,您似乎还没有弄清楚要测试什么。您是否期望 Program.Main 永远运行?还是应该在某个时候终止? (某事或某人可能会导致终止。)

如果你能找出导致终止的方法,你应该在你的测试中做到这一点,然后做出断言(这显然反映了你对终止的期望。)

【讨论】:

  • 是的,我想终止该方法,但不确定语法。谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多