2016-08-10 6 views
1

私はいくつかのファイルのバックアップを作成する方法があります:SystemWrapperとRhinoのモックを使って、それをテストしようとしているユニットテスト

public void MakeBackup(IFileWrap file, string path) 
    { 
     if (path == null) 
      throw new ArgumentNullException(); 

     Console.WriteLine(); 

     string backups = Environment.CurrentDirectory + @"\Backups\"; 

     if (!Directory.Exists(backups)) 
      Directory.CreateDirectory(backups); 

     if (file.Exists(path)) 
     { 
      file.Copy(path,backups + Path.GetFileName(path),overwrite: true); 
      Console.WriteLine("Backup of the " + Path.GetFileName(path) + " lies in the " + backups); 
     } 


} 

とはIAM:

[TestMethod] 
    public void MakeBackupTest() 
    { 
     IFileWrap fileRepository = MockRepository.GenerateMock<IFileWrap>(); 

     fileRepository.Expect(x => x.Exists(@"G:\1.txt")); 
     fileRepository.Expect(x => x.Copy(@"G:\1.txt", Environment.CurrentDirectory + @"\Backups\1.txt", overwrite: true)); 

     new Windows().MakeBackup(fileRepository,@"G:\1.txt"); 


     fileRepository.VerifyAllExpectations(); 

    } 

テストを上記は失敗する。私は間違って何をしていますか?

+0

どのように "失敗"ですか?それは例外を投げているのですか、または期待が失敗していますか?メッセージや例外を投稿してください。 – mxmissile

+0

デバッガはプログラマに最適なツールです! – Andrew

答えて

1

fileRepository.Existsの戻り値を設定していません。デフォルト値はfalseです。それは次のようなものでなければなりません:

fileRepository.Expect(x => x.Exists(@"G:\1.txt")).Return(true);