我正在使用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)我的测试方法有什么建议吗?更好的想法?
谢谢!