2016-08-10 8 views
1

나는 일부 파일의 백업을 만드는 방법이 있습니다 SystemWrapper와 코뿔소 모의 객체를 사용하여 테스트하려고단위 테스트

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


} 

그리고 스피 :

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