c#winform与Nunit类

c#winform与Nunit类,c#,winforms,nunit,C#,Winforms,Nunit,我正在努力掌握NUnit框架的使用 当前结构: 请注意,“NUnitStackHandler”是我的类库 目前,我对如何正确处理这件事有点困惑 我的情况是我有一个c#winform,只有一个c#类。这个类保存我的方法,然后我有另一个类库文件保存我的测试-这些测试是为进入类文件而构建的方法 我遇到的情况是,我似乎无法保存已构建的DLL文件。当我打开NUnit并搜索DLL时,它从“bin”文件夹中消失了,我只剩下一个exe应用程序文件 有人能告诉我,我是否应该引用DLL测试方法并在我的项目中使用它

我正在努力掌握NUnit框架的使用

当前结构:

请注意,“NUnitStackHandler”是我的类库

目前,我对如何正确处理这件事有点困惑

我的情况是我有一个c#winform,只有一个c#类。这个类保存我的方法,然后我有另一个类库文件保存我的测试-这些测试是为进入类文件而构建的方法

我遇到的情况是,我似乎无法保存已构建的DLL文件。当我打开NUnit并搜索DLL时,它从“bin”文件夹中消失了,我只剩下一个exe应用程序文件

有人能告诉我,我是否应该引用DLL测试方法并在我的项目中使用它们,而不是使用完全相同方法的单独c文件吗?

好的

对于NUnit新手,希望将其与c winform一起使用:

  • 正常创建解决方案项目

  • 创建表单后,保存它

  • 转到文件>添加>新建项目…>类库

  • 您现在拥有并添加了classLibrary项目来处理测试


  • 5.要构建DLL,只需右键单击类图标并单击“构建”

    在项目中使用NUnit的一种方法如下:

    [TestFixture]
    public class TestingMyApp
    {
       [Test]
       {
          // Add you assertions here
          // From here you would drive out the 
          // functionality on your applications class(es)
       }
    }
    
    在一个单独的项目中创建单元测试,比如MyApp.tests,它将是一个类库项目

    检查一下,因为它将帮助你在你的TDD

    在该项目中,您添加了对NUnit的引用,然后可以使用该项目中的测试来驱动您试图创建的实际应用程序的功能,如下所示:

    解决方案:

    • MyApp.Tests

    • MyApp

    在MyApp.Tests项目中,您可以这样声明您的测试:

    [TestFixture]
    public class TestingMyApp
    {
       [Test]
       {
          // Add you assertions here
          // From here you would drive out the 
          // functionality on your applications class(es)
       }
    }
    
    在MyApp项目中,您可能有一个包含功能的类,该类将由您的应用程序使用,但将是您通过测试构建的类

    请注意,您的测试实际上并没有成为MyApp类中的方法,如果有意义的话,它们用于排除您将在MyApp类中使用的方法。


    就我个人而言,我喜欢将NUnit与Resharper结合使用,这样我就可以编写我希望如何设计类,以及我没有实现的位在VS中用红色曲线突出显示的位置,我只需在蜿蜒的线条上按住Alt+Enter键,即可执行实际实现的“退出”。

    听起来好像您正在将所有内容捆绑到实际的WinForms应用程序中。如果您发布当前结构的屏幕截图或其详细信息(即Visual Studio中的“解决方案资源管理器”窗口),我们可能会提供更好的建议,但我建议您将应用程序分为两个项目。一个包含表单等(UI代码),一个包含应用程序逻辑、类等(业务逻辑)。然后,这将编译成一个DLL,NUnit可以使用它,您可以单独对它们进行单元测试。你的应用程序应该是松散耦合的,以允许进行单元测试。虽然这将解决你的问题,但最好将你的业务代码和UI代码完全分开。就像在中一样,如果我是一个第三方开发人员,我看着你的
    StackHandler
    类,然后说,嘿,我想用这个。我必须加载整个应用程序才能使用它。