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

标签 c# .net unit-testing testing automated-tests

每次,当我处理在 .NET (C#) 中编写测试时,我都会读到,你只能测试 DLL。但是我的应用程序没有任何 DLL,我也想测试一些 Controller 和行为。不创建 DLL 项目怎么可能?可能吗?

欢迎提示。

最佳答案

您的单元测试项目仍然可以像任何其他类库一样引用应用程序项目。它可能被认为不太理想,但没有什么能阻止它工作。随着系统逻辑的增长,即使是一点点,您肯定会考虑将业务逻辑转移到类库项目中,并使应用程序层尽可能薄。

I read, you can test DLLs only.

这是过于简单化了。他们可能的意思是您只能测试离散的功能。无论托管该功能的项目类型如何,功能本身都必须明确定义,具有分离的关注点,并且可以单独测试。如果那是导致您的设计出现问题,那么您需要做更多的工作才能对您的代码进行单元测试。

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

  1. 安排
  2. 行动
  3. 断言

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

关于c# - 如何在 .NET 中测试可执行文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44241544/

相关文章:

c# - netstandard - 正则表达式,无法访问组名

c# - 用于检查值是否存在的更好的代码/模式

oop - 如何对非公共(public)逻辑进行​​单元测试

c# - .NET 中字典的复合键

c# - 使用 DLLImport 时异常如何工作

C# - 跳转到数据库中的 ID

c# - 事务死锁,如何设计得当?

c# - 单击 gridview 列标题整个 gridview 试图覆盖窗口

C# 如何单元测试/验证类提供的 API 是否是线程安全的?

c# - 找不到名为 webdriver.json 的文件或 ID 为“WebDriver.FirefoxPreferences”的嵌入式资源