C# 如何在.NET中测试可执行文件

C# 如何在.NET中测试可执行文件,c#,.net,unit-testing,testing,automated-tests,C#,.net,Unit Testing,Testing,Automated Tests,每当我在.NET(C#)中编写测试时,我都会读到,您只能测试DLL。但我的应用程序没有任何DLL,我想测试一些控制器和行为。在不创建DLL项目的情况下,如何实现这一点?可能吗 欢迎提供提示。您的单元测试项目仍然可以像任何其他类库一样引用应用程序项目。它可能被认为不太理想,但没有什么能阻止它工作。随着系统逻辑的发展,即使是一点点,你也一定要考虑将业务逻辑转移到类库项目中,并尽可能地保持应用层。 我知道,你只能测试DLL 这是一种过于简单化的做法。他们可能的意思是,您只能测试离散功能。无论托管该功能

每当我在.NET(C#)中编写测试时,我都会读到,您只能测试DLL。但我的应用程序没有任何DLL,我想测试一些控制器和行为。在不创建DLL项目的情况下,如何实现这一点?可能吗

欢迎提供提示。

您的单元测试项目仍然可以像任何其他类库一样引用应用程序项目。它可能被认为不太理想,但没有什么能阻止它工作。随着系统逻辑的发展,即使是一点点,你也一定要考虑将业务逻辑转移到类库项目中,并尽可能地保持应用层。 我知道,你只能测试DLL

这是一种过于简单化的做法。他们可能的意思是,您只能测试离散功能。无论托管该功能的是哪种项目,功能本身都必须定义良好,具有独立的关注点,并且可以单独测试。如果这导致了设计中的问题,那么为了对代码进行单元测试,您还有更多的工作要做

但要开始,只需创建单元测试项目并引用其他项目。然后开始为各个功能单元编写测试。每个测试应仅测试一个离散的事物,并应包括以下简单步骤:

  • 安排
  • 表演
  • 断言

  • 单元测试不需要任何额外的设置,也不应该产生任何副作用。这就是“离散”部分的由来,每个部分都应该是独立的,而不是依赖于其他部分。

    你从哪里读到的?您试过了吗?仅供参考:您应该始终记住,您可以在任何可访问的部分上编写集成测试,但只有当您将类设计为可单元测试(所有依赖项都必须是可注入和可模拟的)时,才可以编写单元测试。两者外表相同,但意图不同,规则也不同