我是 TDD 的新手。我已经开始在 View 模型上创建我需要的属性作为普通自动属性。
public string Firstname { get; set; }
然后我创建一个测试
[TestMethod]
[Tag("Property")]
public void FirstNameTest()
{
ViewModel = new CustomerViewModel();
ViewModel.PropertyChanged += (s, e) =>
{
Assert.AreEqual("Firstname", e.PropertyName);
Assert.AreEqual("Test", ViewModel.Firstname);
};
ViewModel.Firstname = "Test";
}
然后我将扩展实际实现以使测试通过,如下所示:
public string Firstname
{
get { return _contact.FirstName; }
set
{
if (_contact.FirstName == value)
return;
_contact.FirstName = value;
RaisePropertyChanged(() => Firstname);
}
}
我遇到的问题是 Aut 属性的测试仍然通过。有什么建议可以改进我的流程吗?
最佳答案
你可以这样做:
[TestMethod]
[Tag("Property")]
public void FirstNameTest()
{
bool didFire = false;
ViewModel = new CustomerViewModel();
ViewModel.PropertyChanged += (s, e) =>
{
didFire = true;
Assert.AreEqual("Firstname", e.PropertyName);
Assert.AreEqual("Test", ViewModel.Firstname);
};
ViewModel.Firstname = "Test";
Assert.IsTrue(didFire);
}
关于c# - 对 Viewmodel 进行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4845332/