【问题标题】:easiest way to test a C# dll测试 C# dll 的最简单方法
【发布时间】:2023-03-03 07:48:25
【问题描述】:

我有一个类库类型的 C# dll,开发它是为了由第三方 Quartz 应用程序调用。

这个 C# dll 创建一个文件,我想在不使用 Quartz 的情况下测试创建文件。 对最简单的方法有什么建议吗?

我尝试创建控制台应用程序并调用了 dll,但该 dll 使用了许多其他 dll,并且每当此 dll 调用其他 dll 时,我都会收到烦人的(空引用)错误

【问题讨论】:

  • 如果 DLL 正在使用其他 DLL,您只需将它们全部放在同一个文件夹中。
  • 我已经尝试过了,但它并没有真正起作用:S
  • 尝试在调试模式下编译所有 DLL,然后添加 .pdb 文件。拥有这些将在错误的堆栈跟踪中为您提供行号,查看失败并修复它。
  • 感谢您提到这一点,我已经阅读了它们,但我得到的答案都不是帮助我解决问题的答案。所以这就是为什么我没有检查任何一个作为正确答案
  • 暗影精灵,你能不能把你的评论写成答案,让我把它标记为正确答案

标签: c#


【解决方案1】:

我认为您很难在没有任何依赖关系的情况下直接测试 DLL。作为替代方案,我建议您改为使用 Unit Testing 对代码运行隔离测试。

我建议您看一下使用 Visual Studio 进行单元测试的介绍。 http://www.codeproject.com/Articles/391465/Creating-Unit-tests-for-your-csharp-code

【讨论】:

  • 感谢您的回答,我现在正在尝试单元测试,希望它能工作
【解决方案2】:

您应该开发一个Unit test 项目。 但是,您必须 mock / stub 输出您的类库使用的依赖项。 为了有效地做到这一点,您需要“设计”您的类库以便于测试。

如果有好的建议,我可以推荐 Roy Osherove 的《The art of Unit Testing》一书。

您可以尝试 MStest(VS 中包含某些版本)或Nunit

但是,如果您使用的是遗留代码或难以测试的代码,特殊框架可以帮助您注入外部 DLL 等依赖项。一个例子是Typemock

【讨论】:

  • 感谢您的回答,我现在正在尝试单元测试,希望它能工作
猜你喜欢
  • 2014-12-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多