【发布时间】:2020-01-23 07:30:35
【问题描述】:
我有一个实现 INotifyPropertyChanged 的类,我需要测试这个接口是否正确实现。我想使用 Rhino Mock 对象来做到这一点。
class MyClass : INotifyPropertyChanged
{
public int X
{
get => ...;
set => ... // should check if value changes and raise event PropertyChanged
}
}
我要测试的是,当 X 更改值时,该事件 PropertyChanged 仅调用一次,并带有适当的参数。
MyClass testObject = new MyClass();
// the mock:
PropertyChangedEventHandler a = MockRepository.GenerateMock<PropertyChangedEventHandler>();
testObject.PropertyChanged += a;
// expect that the mock will be called exactly once, with the proper parameters
a.Expect( (x) => ???)
.Repeat()
.Once();
// change X, and verify that the event handler has been called exactly once
testObject.X = testObject.X + 1;
a.VerifyAllExpectations(); ???
我认为我走在正确的道路上,但我无法让它发挥作用。
【问题讨论】:
标签: c# unit-testing inotifypropertychanged rhino-mocks