2012-04-13 68 views
1

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

我刚刚开始编写单元测试,我希望能够根据不同的角色测试这些控件的可见性(如果我们有一个bug,那将会非常糟糕)。但是,由于我们使用的是MVVM模式,并且控件没有命名,所以我不知道如何去做。有什么想法吗?

回答

2

这正是ViewModel的用途。你应该能够测试你的视图模型容易(在你的情况下,我想它们是否暴露正确的角色来查看)。由于转换器只是一个普通的课程,所以它们也应该被测试。

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

  1. 测试是否视图模型暴露正确的数据
  2. 测试是否转换器将作用能见度正确

这里是单元测试结束的地方。这些测试应该保证您的视图能够获得适当的数据以按照您的计划进行渲染。现在不管它是不同的东西,但这超出了单元测试的范围。最终的测试属于验收测试,质量保证以及自动/脚本化的UI测试,而且通常是人工验证。

+0

杰出的答案;非常感谢。如果我有足够的代表点,我会投票:) – Joe 2012-04-13 15:48:52

0

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

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

+0

感谢您的输入;并不是反对为控件命名控件,而是为了这个目的我们不得不重新命名控件(因为之前没有明显需要命名它们,没有命名)。 – Joe 2012-04-13 14:38:36