2017-03-06 5 views
1

次のコードスニペットにNunitテストケースを書くには? CreateFolder()は、選択したフォルダの下のツリービューに新しいフォルダを作成する機能であり、CanCreateFolder()は、フォルダを作成できるかどうかを確認する機能です。次のようにnunitテストケースを書くには

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

答えて

0

CanExecuteFolderItemを探している、まだテストであなたは、パラメータとしてビューモデルを渡しています。あなたはFolderItemインスタンスで実行できるかどうかテストする必要があります。

この例では、このタイプに関する情報が与えられていないと仮定すると、次のように仮定すると、FolderItemにはデフォルトコンストラクタがあります。 結果のStackTrace:

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

上記Iは、テストを実行すると、私は次のメッセージを取得OP

+0

に設けられた例を与え渡す必要NUnit.Framework.Assert.Equalsで\t を(オブジェクト、オブジェクトb) at 結果メッセージ:\t System.InvalidOperationException:Assert.Equalsをアサーションに使用しないでください。そのため、Assert.IsTrue(canCreateFolder);それはうまく動作します。 –

関連する問題