我正在编写复杂的应用程序,其中包括服务器和客户端应用程序,如果我想在我的应用程序中添加一些新窗口,我需要运行服务器,然后运行客户端,然后登录点击几个按钮,然后我到达窗口,我现在开发,这很烦人,需要很多时间。所以现在我正在寻找一些解决方案,我可以运行测试,只能运行我的wpf表单使用模拟服务(所以我不需要运行服务器,不需要登录),可以点击或触发事件和检查控件出现并以我想要的方式行事。 在这种情况下,我可以节省大量的时间,因为我不需要浪费时间,当我尝试通过运行整个应用程序到达我的表格,我需要使用登录,搜索绕过一些验证表格等。 如果已经有了简单的解决方案,那就太棒了。
答案 0 :(得分:4)
看一下MVVM模式。
答案 1 :(得分:0)
您使用的是dependency injection吗?如果是这样,您可以使用mocking framework并#if-else directives
组合创建虚假版本的重型服务。应用程序启动代码中的某处:
ILoginService service;
#if DEBUG
service = A.Fake<ILoginService>();
// you could even set up your fakes to return logged user to
// automate logging in process:
var userFake = A.Fake<IUser>();
A.CallTo(() => service.LogIn(A<string>.Ignored)).Returns(userFake);
#else
service = new RealLoginService();
#endif
var myWindow = new MyWindow();
var viewModel = new ViewModel(service);
myWindow.DataContext = viewModel;
// ...
你需要的只是ViewModel
(假设你使用了这个)能够采用ILoginService
依赖。然后你可以根据自己的喜好模拟/伪造它。