测试ViewModel PropertyChanged事件

Mar*_*arl 6 c# nunit unit-testing

我是TDD的"初学者",我想弄清楚的是如何对视图模型进行单元测试......

我想确保触发属性ProeprtyChanged事件...我使用nunit进行了以下测试.

[Test]        
public void Radius_Property_Changed()
{
    var result = false;
    var sut = new MainViewModel();
    sut.PropertyChanged += (s, e) =>
    {
        if (e.PropertyName == "Radius")
        {
            result = true;
        }
    };

    sut.Radius = decimal.MaxValue;
    Assert.That(result, Is.EqualTo(true));
}
Run Code Online (Sandbox Code Playgroud)

这是最干净的方法,还是有更好的方法来测试这个属性

...我在测试的视图模型中的代码片段看起来像这样......

public decimal Radius
{
    get { return _radius; }
    set
    {
        _radius = value;
        OnPropertyChanged("Radius");
    }
}
Run Code Online (Sandbox Code Playgroud)

k.m*_*k.m 4

这几乎就是你这样做的方式。鉴于代码非常简单(而且无聊),这里没有什么其他可做的。将其包装在您自己的可重用库/工具中可能是值得的。或者甚至更好,使用现有代码