2016-08-10 5 views
1

Ich habe die Methode, die Sicherung einiger Datei macht:Unit Testing SystemWrapper und Rhino Mocks mit

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


} 

Und Iam versuchen, es zu testen, indem SystemWrapper und Rhino Mocks mit:

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

    } 

Der Test oben schlägt fehl. Was mache ich falsch?

+0

Wie "scheitert"? Gibt es eine Ausnahme oder scheitern die Erwartungen? Bitte posten Sie die Nachricht oder Ausnahme. – mxmissile

+0

Der Debugger ist das beste Werkzeug für einen Programmierer! – Andrew

Antwort

1

Sie setzen keinen Rückgabewert für fileRepository.Exists - der Standardwert ist false. Es sollte so etwas wie sein:

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