C# 如何为以下内容编写nunit测试用例
如何为以下代码段编写Nunit测试用例?C# 如何为以下内容编写nunit测试用例,c#,unit-testing,nunit,C#,Unit Testing,Nunit,如何为以下代码段编写Nunit测试用例? CreateFolder()是在树状视图中选定文件夹下创建新文件夹的函数,CanCreateFolder()是检查是否可以创建文件夹的函数 public ICommand CreateFolderCommand { get { if (createFolderCommand == null) { createFolderCommand = new RelayCommand(Creat
CreateFolder()
是在树状视图中选定文件夹下创建新文件夹的函数,CanCreateFolder()
是检查是否可以创建文件夹的函数
public ICommand CreateFolderCommand
{
get
{
if (createFolderCommand == null)
{
createFolderCommand = new RelayCommand(CreateFolder, CanCreateFolder);
}
return createFolderCommand;
}
}
private bool CanCreateFolder(object parameter)
{
if (parameter is FolderItem)
{
return true;
}
return false;
}
#endregion
在下面的测试用例中,我应该添加哪些内容
[Test]
public void CreateFolderCommandMainVMTest()
{
MainVm mainVM = new MainVm();
RelayCommand command = (RelayCommand)mainVM.CreateFolderCommand;
bool canCreateFolder = command.CanExecute(mainVM);
Assert.Equals(canCreateFolder, true);
}
CanExecute
正在寻找一个FolderItem
,但在测试中,您将视图模型作为参数传递。您需要测试是否可以使用FolderItem
实例执行
鉴于示例中没有给出有关该类型的信息,下面假设FolderItem
具有默认构造函数
[Test]
public void CreateFolderCommandMainVMTest() {
//Arrange
var mainVM = new MainVm();
var foldeItem = new FolderItem();
var command = (RelayCommand)mainVM.CreateFolderCommand;
var expected = true;
//Act
bool canCreateFolder = command.CanExecute(folderItem);
//Assert
Assert.Equals(expected, canCreateFolder);
}
鉴于OP
CanExecute
中提供的示例正在查找一个FolderItem
,但在测试中,您将视图模型作为参数传递,因此上述测试应该通过。您需要测试是否可以使用FolderItem
实例执行
鉴于示例中没有给出有关该类型的信息,下面假设FolderItem
具有默认构造函数
[Test]
public void CreateFolderCommandMainVMTest() {
//Arrange
var mainVM = new MainVm();
var foldeItem = new FolderItem();
var command = (RelayCommand)mainVM.CreateFolderCommand;
var expected = true;
//Act
bool canCreateFolder = command.CanExecute(folderItem);
//Assert
Assert.Equals(expected, canCreateFolder);
}
以上应该通过OP中提供的示例,当我运行测试时,我得到以下消息:Result StackTrace:at NUnit.Framework.Assert.Equals(对象a,对象b),Result消息:System.invalidoOperationException:Assert.Equals不应用于断言。因此使用Assert.IsTrue(canCreateFolder);当我运行测试时,我得到以下消息:Result StackTrace:at NUnit.Framework.Assert.Equals(对象a,对象b),结果消息:System.invalidoOperationException:Assert.Equals不应用于断言。因此使用Assert.IsTrue(canCreateFolder);而且效果很好。