【发布时间】:2022-02-10 21:00:11
【问题描述】:
我一直在摆弄顶级语句作为简单控制台应用程序的入口点,因为新的 .NET 6 模板将它们用作默认值。
然而,正如language specification 非常清楚地指出的那样:
请注意,名称“Program”和“Main”仅用于说明目的,编译器使用的实际名称取决于实现并且类型和方法都不能通过源代码中的名称引用强>。
那么,如果我不能引用隐式的Program 类并且它是Main() 方法,是否可以编写单元测试来检查顶级语句本身的执行流程?如果有,怎么做?
【问题讨论】:
-
真的需要这个吗?这可能只是一个研究问题吗?有点像“我可以让猪飞”之类的问题吗? (顺便说一句,猪的答案是肯定的,只是时间不长)
-
一个问题:为什么真的有人想要这样做吗?任何复杂到足以保证单元测试的程序都没有(或:应该有)Main() 或顶层的任何主要功能。
-
@Lasse 实际上两者兼而有之。我认为对于新学习者来说使用控制台应用程序来提高他们的技能非常棒,如果他们碰巧正在学习单元测试,那么能够测试编译器生成的 Main() 方法的执行可能会有所帮助。但我不得不承认,想知道这是否可能的冲动主要是出于对顶级语句的局限性的好奇。
-
@Franz 我同意,但我仍然很想知道是否有办法。
标签: c# unit-testing testing .net-6.0 toplevel-statement