간단한 RhinoMocks 테스트가 반환 값에서 설정 한 값을 반환하지 않는 이유를 알아 내려고 노력했습니다. 나는 정말 단순한 무언가를 놓친 것 같지만 그 사실을 이해할 수는 없다. 여기에 내 테스트 :RhinoMocks AAA 구문
[TestMethod]
public void CopyvRAFiles_ShouldCallCopyvRAFiles_ShouldReturnTrue2()
{
FileInfo fi = new FileInfo(@"c:\Myprogram.txt");
FileInfo[] myFileInfo = new FileInfo[2];
myFileInfo[0] = fi;
myFileInfo[1] = fi;
var mockSystemIO = MockRepository.GenerateMock<ISystemIO>();
mockSystemIO.Stub(x => x.GetFilesForCopy("c:")).Return(myFileInfo);
mockSystemIO.Expect(y => y.FileCopyDateCheck(@"c:\Myprogram.txt", @"c:\Myprogram.txt")).Return("Test");
CopyFiles copy = new CopyFiles(mockSystemIO);
List<string> retValue = copy.CopyvRAFiles("c:", "c:", new AdminWindowViewModel(vRASharedData));
mockSystemIO.VerifyAllExpectations();
}
내 SystemIO 클래스에 대한 인터페이스가 있습니다. 내 CopyFiles 클래스의 모의를 전달하고 있습니다. 내 FileCopyDatCheck 메서드에 대한 기대치를 설정하고 반환해야한다고 말합니다 ("테스트"). 코드를 단계별로 실행하면 null insteaed가 반환됩니다. 여기에 내가 누락 된 아이디어가 있습니까?
여기 내에서 CopyFiles 수준의 방법입니다 :
public List<string> CopyvRAFiles(string currentDirectoryPath, string destPath, AdminWindowViewModel adminWindowViewModel)
{
string fileCopied;
List<string> filesCopied = new List<string>();
try
{
sysIO.CreateDirectoryIfNotExist(destPath);
FileInfo[] files = sysIO.GetFilesForCopy(currentDirectoryPath);
if (files != null)
{
foreach (FileInfo file in files)
{
fileCopied = sysIO.FileCopyDateCheck(file.FullName, destPath + file.Name);
filesCopied.Add(fileCopied);
}
}
//adminWindowViewModel.CheckFilesThatRequireSystemUpdate(filesCopied);
return filesCopied;
}
catch (Exception ex)
{
ExceptionPolicy.HandleException(ex, "vRAClientPolicy");
Console.WriteLine("{0} Exception caught.", ex);
ShowErrorMessageDialog(ex);
return null;
}
}
나는 "fileCopied"는 기대가 설정 한 반환 값을 가질 것이라고 생각합니다. GetFilesForCopy는 myFileInfo의 두 파일을 반환합니다. 도와주세요. :)
미리 감사드립니다.
당신이 말하는 것은 많은 의미를 가지며, 이것이 내가 여기서 무슨 일이 일어나고 있는지 이해할 수있게 도와 준다고 생각합니다. 고맙습니다! –