我是使用prism的mvvm应用程序中的单元测试视图模型。我正在使用moq来测试视图模型。我遇到了一个问题,我正在单元测试一个方法,该方法本身调用另一个方法,并进一步调用密码对话框弹出。因为我是单元测试第一种方法,所以我怎么能压制对话框弹出,因为我无法控制,直到我的函数返回。另外我还要单元测试是否弹出了对话框。
答案 0 :(得分:1)
我建议您通过编写一个简单的UIService来测试您的VM,这将提升您的弹出窗口和对话框。这将获得你的可测性(你很容易编写一个模拟服务)和一般的好设计approch,因为我们没有看到我们的视图模型来提高弹出窗口(想象你想要在手机中重用vm \ tablet app)。
这是一幅草图:
public interface IUIService
{
bool ShowPopUp(....);
DialogResult ShowDialog(...);
..
}