C# 使用NUnit测试Windows窗体逻辑

C# 使用NUnit测试Windows窗体逻辑,c#,winforms,unit-testing,nunit,C#,Winforms,Unit Testing,Nunit,我正在潜入单元测试,我想知道是否有可能测试对话框或表单的一些特殊功能。我已经试过了,但它缺乏好的文档,而且似乎没有人在维护那个项目。这是真的吗 如果您有测试Windows窗体的经验,请告诉我正确的方法。如有任何意见或信息,我们将不胜感激。谢谢大家! 自动化GUI测试往往非常脆弱,我想这就是为什么没有维护NUnitForms的原因(如果这是真的话) 省去你的痛苦,看看如何应用设计模式,比如或。这将允许您以更加健壮的方式对UI逻辑进行单元测试。我对NUnitForms也有同样的问题。我可以启动一个表

我正在潜入单元测试,我想知道是否有可能测试对话框或表单的一些特殊功能。我已经试过了,但它缺乏好的文档,而且似乎没有人在维护那个项目。这是真的吗


如果您有测试Windows窗体的经验,请告诉我正确的方法。如有任何意见或信息,我们将不胜感激。谢谢大家!

自动化GUI测试往往非常脆弱,我想这就是为什么没有维护NUnitForms的原因(如果这是真的话)


省去你的痛苦,看看如何应用设计模式,比如或。这将允许您以更加健壮的方式对UI逻辑进行单元测试。

我对NUnitForms也有同样的问题。我可以启动一个表单并单击一个按钮,但我不知道如何让对话框工作,我也找不到关于它的更多信息。 我认为这个博客是最有用的:

我必须在我的app.config中重新映射NUnitForms程序集,以使其与最新版本一起工作,如下所示:

<configuration>
   <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
      <dependentAssembly>
        <assemblyIdentity name="nunit.framework"
          publicKeyToken="96d09a1eb7f44a77"
          culture="neutral" />
        <bindingRedirect oldVersion="2.2.7.0" newVersion="2.5.2.9222" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>

)



我希望这个帖子能对我有所帮助,但我还是可以尝试project white()。

我在使用作为.Net 3.0及更高版本一部分的UI自动化框架方面取得了很大成功。我写了一封信,也许能帮你开始

关于Ayende制作的MVC框架,有一个非常好且易于理解的例子,更多细节请参见他的博客。它的工作原理是在应用程序中添加一个非常轻量级的结构,自动将按钮连接到事件

通过使用这种类型的框架,您被迫在视图中没有任何逻辑,只有在演示者中。然后,您可以轻松地对逻辑进行单元测试,而无需触摸WinForms


我已经启动了一个到.NET 2.0和WinForms的有效端口,如果您感兴趣的话。

好建议,但WinForms(afaik)没有主流MVC库/模板。@Henk Holterman:是和否:p&p提供了超级复杂的复合UI应用程序块(CAB)。它也没有被维护,但是你几乎可以说关于Windows窗体本身:)我想在窗体中测试的逻辑是输入验证逻辑。。。我认为即使使用MVC模式,这仍然是合理的。是的,但您仍然可以在底层模型中实现输入验证逻辑,而不是直接在Windows窗体代码中实现。从未听说过Winforms的模型视图模型(我以为它是随WPF引入的)。SCSF(位于CAB顶部的GUI层)虽然有点复杂,但它提供了一个很好的模型-视图-演示器框架,并且非常易于单元测试。问题是,我想在我的持续集成服务器中测试GUI逻辑,这样我就不必费心在每个修订版上运行测试了。你看到了吗:嘿,你的las链接转到了一个页面,上面写着“找不到!”:-是的,我认为github在早些时候就坏了,但现在应该可以工作了