0
我是新來的犀牛製品創建測試用例,我需要編寫一個單元測試用例以下方法:使用犀牛嘲笑爲嘲諷一個WebClient的方法
public string PutFileInArchive(string fileName, string userId, string mimeType, byte[] fileContents, IocContainer container)
{
string archiveId;
try
{
IArchiveService _archiveService = container.Resolve<IArchiveService>();
archiveId = _archiveService.Archive(fileName, mimeType, userId, fileContents);
}
catch (Exception ex)
{
throw;
}
return archiveId;
}
上述方法在內部調用web客戶端方法,我需要嘲笑。我創建了一個存根,但我不確定如何使用它。我的方法總是調用實際的webclient方法。
[TestMethod()]
public void Archive_PutFileInArchive_ShouldPut()
{
StreamReader reader = new StreamReader("C:\\File.txt");
MemoryFile file = new MemoryFile(reader.BaseStream, "string", "File.txt");
HttpPostedFileBase postedFile = file;
var fileContents = new byte[file.ContentLength];
file.InputStream.Read(fileContents, 0, file.ContentLength);
IFileArchiveService fileArchiveService = MockRepository.GenerateMock<IFileArchiveService>();
fileArchiveService.Stub(x => x.Archive("File.txt", "text/plain", "webuser1", fileContents)).Repeat.Once().Return("12345");
Archive archive = new Archive();
string fileid = archive.PutFileInArchive("File.txt", "webuser1", "text/plain", fileContents, container);
Assert.AreEqual("12345", fileid);
}
請讓我知道如何在這種情況下使用模擬。
謝謝@Alexander Stepaniuk。這解決了它。 – 2013-03-28 18:00:26