2010-07-29 70 views
0

我有一个使用MVVM的大型应用程序。该模型主要在C++ DLL中。 ViewModel是用C#编写的,我用通常的方式将我的WPF控件绑定到ViewModel。从外部应用程序测试.Net C#WPF MVVM应用程序

该应用程序已准备好进行集成测试。我可以从应用程序内部驱动测试,但我想将测试移到另一个过程中,以便最大限度地减少应用程序对测试内容的污染。

我想在C#和WPF中自己编写测试应用程序,但我有点卡住了如何去做。

注意:如果有一个第三方测试应用程序用于在.Net应用程序中测试ViewModel,我也很想听听!

我想Process.Start是最初的方式,但从那里我迷路了。

基本上我需要让应用程序正常加载,像往常一样创建其模型,并启动GUI,所以我不能单独驱动单个测试方式(单元测试样式)。然后,我想设置并获取我的ViewModel属性,就像我现在使用我的本地测试一样。

我已经看过James McCafferey的MSDN 03/09文章中有关测试WPF应用程序的文章,但它的目的是测试GUI(基本上远程按下按钮等),这是我想要避开的东西。

在这里反思的方式?如果是这样,考虑到我不能简单地反映到'空'ViewModel,它必须连接到我的模型的VM属性是可测试的。

预先感谢

+0

更新:我最终把我的测试装置放在主应用程序中 - 非常容易! – Surfbutler 2010-12-23 11:27:32

回答

0

基本上我需要让应用程序加载通常,创建其照常模型,并启动GUI,所以无法推动隔离各个方法(单元测试样式) 。

IcuTest(http://IcuTest.com/)是你在找什么。它让你在单元测试框架中启动应用程序,让你与模型和方法交互。

+0

看起来IcuTest的工作原理是通过比较操作前后的截图来实现,而不是我之后的操作,因为我已经完成了MVVM的所有麻烦,以避免这种“强力”测试。使用我的进程内测试工具,我可以直接查询ViewModel的值,而不管它们是否等同于View中的可见实体。我只想要一种方法将我的测试代码代码移出进程。 – Surfbutler 2010-08-03 08:13:12