আমার কিছু কোড রয়েছে যা PropertyChanged
ইভেন্টগুলি উত্থাপন করে এবং আমি ঘটনাটি সঠিকভাবে উত্থাপিত হচ্ছে কিনা তা ইউনিট পরীক্ষায় সক্ষম হতে চাই।
ইভেন্টগুলি উত্থাপন করছে এমন কোডটি এর মতো
public class MyClass : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
protected void NotifyPropertyChanged(String info)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(info));
}
}
public string MyProperty
{
set
{
if (_myProperty != value)
{
_myProperty = value;
NotifyPropertyChanged("MyProperty");
}
}
}
}
আমি আমার ইউনিট পরীক্ষায় নিম্নলিখিত কোড থেকে একটি দুর্দান্ত সবুজ পরীক্ষা পেয়েছি, এতে প্রতিনিধিরা ব্যবহার করে:
[TestMethod]
public void Test_ThatMyEventIsRaised()
{
string actual = null;
MyClass myClass = new MyClass();
myClass.PropertyChanged += delegate(object sender, PropertyChangedEventArgs e)
{
actual = e.PropertyName;
};
myClass.MyProperty = "testing";
Assert.IsNotNull(actual);
Assert.AreEqual("MyProperty", actual);
}
যাইহোক, আমি যদি তারপর চেষ্টা করি এবং সম্পত্তিগুলির সেটিংটি এর মতো করে একত্র করি:
public string MyProperty
{
set
{
if (_myProperty != value)
{
_myProperty = value;
NotifyPropertyChanged("MyProperty");
MyOtherProperty = "SomeValue";
}
}
}
public string MyOtherProperty
{
set
{
if (_myOtherProperty != value)
{
_myOtherProperty = value;
NotifyPropertyChanged("MyOtherProperty");
}
}
}
ইভেন্টটির জন্য আমার পরীক্ষা ব্যর্থ হয় - এটি যে ইভেন্টটি ধারণ করে তা হ'ল মওথারপ্রপারটির ইভেন্ট।
আমি নিশ্চিত যে ঘটনাটি আগুনে ছড়িয়ে পড়ে, আমার ইউআই এর মতো প্রতিক্রিয়া দেখায় তবে আমার প্রতিনিধি কেবল শেষ ঘটনাটি আগুনে ধরতে পারে।
সুতরাং আমি ভাবছি:
১. ঘটনাগুলি পরীক্ষার আমার পদ্ধতি কি সঠিক?
২. আমার শৃঙ্খলাবদ্ধ ঘটনা উত্থাপনের পদ্ধতি কি সঠিক?