2017-03-06 57 views
0

NAudioEngine是一个单独的类如何写在下面的代码片段执行:如何编写NUnit测试案例单身类

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); 

    } 
+0

传递单值作为参数。使用该方法访问静态/单例值会使得难以单独进行测试,因为它与测试中可能无法更改的某些东西耦合在一起。 – Nkosi

回答

0
[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); 
    }