代码之家  ›  专栏  ›  技术社区  ›  Timo

NUnit(或NUnitLite)和的“入门”问题。NET CF

  •  4
  • Timo  · 技术社区  · 17 年前

    我有一个现有的VS 2005标准。NET Compact Framework应用程序,我想对其进行一些重大重构。目前还没有单元测试,但我想在修改代码之前添加它。我没有单元测试的实践经验,尽管我知道这个理论(只是从来没有真正实现过它;我知道:我很惭愧:-) 以下是我目前正在思考的一些问题:

    c) 我想测试的类通常是如何包含在测试项目中的?我的申请是。EXE文件,即我不能像引用一样引用它。测试项目中的DLL程序集(或者我可以吗?从未尝试过…)。我查看了各种NUnit教程,但要么没有提到这一点,要么有一个教程建议将我想测试的类复制并粘贴到测试项目中(yuk!)。我应该链接到测试项目中的原始源代码文件吗?那么私有方法或对其他类的依赖呢?

    d) 我是否应该开始修改我的原始代码以允许更好的可测试性,例如使私有方法公开、解耦等。?这有点像在能够测试之前进行重构,这对我来说听起来不太好。..或者,最好的做法是在开始时根本不接触原始代码,即使这意味着更少的代码覆盖率等。?

    e) 我应该看看大多数人使用的其他工具或插件吗?

    提前感谢您的任何答案(如果答案仅针对上述一项或几项,我也很感激)。

    2 回复  |  直到 17 年前
        1
  •  7
  •   olli-MSFT    17 年前

    Pragmatic Unit Testing in C# .

    一般的单元测试。xUnit测试框架不是很复杂,您很快就会习惯它们的API/工作流程。挑战是识别边界条件、减少耦合和可测试性设计的实际过程。它有电子书(PDF)或印刷版。

    关于你的实际问题(这本书也会给你一些答案):

        2
  •  2
  •   CodingWithSpike    17 年前

    @c) 我还没有尝试过,但我认为VisualStudio会允许您将测试程序集中的项目引用添加到实际的代码程序集中,即使它是exe。

    InternalsVisibleTo 属性:

    [assembly:InternalsVisibleTo("MyTestAssembly")]
    

    您可以使用它使一个组件的内部对另一个组件可见。我使用此属性将内部暴露给我的测试程序集,以便它可以直接引用它们。