1

在我们的主要 Silverlight 业务应用程序中,我们有很多基于用户角色可见和/或启用的控件(例如,只有在管理员角色中才能看到管理员菜单链接)。我们通过转换器控制这种可见性。

我刚开始编写单元测试,我希望能够根据不同的角色测试这些控件的可见性(如果我们在那里有错误,那就太糟糕了)。但是,由于我们使用的是 MVVM 模式,并且控件没有命名,所以我不知道该怎么做。有什么想法吗?

4

2 回答 2

2

这正是ViewModel的用途。您应该能够轻松地测试您的视图模型(在您的情况下,我想它们是否公开了正确的角色来查看)。而且由于转换器只是一个普通的类,它们也应该被测试。

在单元测试方面,你真的只有两个任务要做:

  1. 测试视图模型是否暴露了正确的数据
  2. 测试转换器是否正确将角色转换为可见性

这里是单元测试结束的地方。这些测试应该保证您的视图被提供适当的数据以按照您的计划呈现自己。现在是否这样做是不同的事情,但这超出了单元测试的范围。最终测试属于验收测试、质量保证以及自动化/脚本化 UI 测试,而且通常是人工验证。

于 2012-04-13T14:37:55.710 回答
0

我认为命名控件不会以任何方式破坏 MVVM。如果您从根本上反对命名它们,您可能可以使用 VisualTreeHelper 遍历控件树并找到您感兴趣的控件。

您可以使用 Moq 模拟视图模型来模拟特定角色,并使用 Microsoft 的 Silverlight 测试框架来运行测试。

于 2012-04-13T14:35:30.250 回答