Class 如何为singleton类编写nunit测试用例
NAudioEngine是一个单例类,如何编写可以在以下代码段中执行:Class 如何为singleton类编写nunit测试用例,class,testing,singleton,nunit,case,Class,Testing,Singleton,Nunit,Case,NAudioEngine是一个单例类,如何编写可以在以下代码段中执行: private bool CanAddNew(object parameter) { if (NAudioEngine.Instance.SelectionEnd.Milliseconds != 0) { return true; } return false; } [Test] public voi
private bool CanAddNew(object parameter)
{
if (NAudioEngine.Instance.SelectionEnd.Milliseconds != 0)
{
return true;
}
return false;
}
[Test]
public void AddNewCommandMainVMTestTrue()
{
MainVm mainVM = new MainVm();
RelayCommand command = (RelayCommand)mainVM.AddNewCommand;
bool canAddNew = command.CanExecute(null);
Assert.IsTrue(canAddNew);
}
将单例值作为参数传递。使用该方法访问静态/单例值会使隔离测试变得困难,因为它与您可能无法为测试更改的内容相耦合。
[Test]
public void AddNewCommandMainVMTest()
{
NAudioEngine.Instance.OpenFile(WAV_FILE);
NAudioEngine.Instance.SelectionBegin = new TimeSpan(0, 0, 0);
NAudioEngine.Instance.SelectionEnd = new TimeSpan(0, 0, 0);
MainVm mainVM = new MainVm();
RelayCommand command = (RelayCommand)mainVM.AddNewCommand;
bool canAddNew = command.CanExecute(mainVM);
Assert.IsFalse(canAddNew);
}