1

我正在使用caliburn micro将 ViewModel 中的属性绑定到 xaml 中的元素。仅当您在视图中正确键入属性名称时,绑定才有效。我正在编写一个单元测试来验证匹配(感觉这不会在编译时被捕获)。这是我所拥有的:

    [TestMethod]
    public void LockQuarterViewModel_property_names_should_match_xaml_element_names()
    {
        PropertyInfo[] properties = typeof(RollLockQuarterViewModel).GetProperties(); 
        RollLockQuarterView view = new RollLockQuarterView();

        foreach (PropertyInfo property in properties)
        {
            var element = view.FindName(property.Name);   // eg  "UserWideBlockOut" checkbox.
            Assert.IsNotNull(element);
        }
    }

这似乎适用于复选框之类的东西:

<CheckBox Name="UserWideBlockOut"/>

但它不适用于使用“绑定”的用户控件之类的东西:

<cc:YearQuarterSelector Margin="5,0,0,0" YearQuarter="{Binding CurrentYearQuarter}" IsEnabled="False" />

所以 2 个问题:1)我将如何测试使用“Binding”关键字完成绑定的用户控件?2)我的测试方法有什么建议吗?更好的想法?

谢谢!

4

1 回答 1

0

这是一种糟糕的单元测试方式,它使它们变得脆弱。您正在“针对愚蠢进行编码”,这可能会使您的代码库严重膨胀。这种事情只应该在开发中出错,因此应该在生产之前发现。

于 2013-06-17T19:41:40.320 回答