c# - 如何在 MSTest 项目的 TestMethod 中测试 Program.Main
问题描述
到目前为止,我有一个简单的测试方法,只是在 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 永远运行?还是应该在某个时候终止?(某事或某人可能会导致终止。)
如果你能找出导致终止的方法,你应该在你的测试中做到这一点,然后做出断言(这显然反映了你对终止的期望。)
推荐阅读
- javascript - React 组件状态未使用传递的道具更新
- angular-material - 默认情况下,如何在 Angular Material 中的菜单图标对话框按钮上自动对焦?
- python - pandas 相当于 sql UPDATE 表 SET col3 = NULL WHERE col1 != col2
- angular - 在模板中输入对象会在 Angular 10 中给出错误“属性在其初始化之前使用”
- r - 对数后的逻辑回归参数 P 值变化 - R
- angular - Angular 材质:Mat-select put formgroup 作为值
- telegram - 获取电报中的用户ID
- java - 我在整个项目中使用了 LocalDate,现在我需要 LocalDateTime 来实现功能,该怎么办?
- android - android kotlin:将检索到的数据从 url 存储到房间数据库
- c# - 在 Docker 容器中部署后导出后未显示 C# 文件