我在Silverlight(inbrowser)UnitTesting中使用Mock將文件讀入我的ViewModel中遇到困難。Silverlight在瀏覽器中單元測試模擬<FileInfo>
It gives me an AccessDenied error message. Is there another alternative method for that kind of problem?
My UnitTesting is DragAndDrop Image file in Silverlight 4.
例如: unittesing.cs
變種的fileInfo =新莫克(); //我無法模擬FileInfo
var fileInfo = new FileInfo(「test.jpg」);
謝謝喬尼,我做了如下,不工作,這裏是我的示例代碼剪斷。
新的接口類
公共接口IFileInfo {字符串名稱{;設置;}的FileStream打開(的FileMode模式); }
新的包裝類
公共類FileInfoWrapper:IFileInfo {私人的FileInfo的fileInfo;公共FileStream OpenRead(){返回this.OpenRead(); } public string Name {get {return this.Name; } set {this.Name = value; }}
}
在我的測試類
[TestMethod的] [異步]公共無效MultiFileDropTest(){列表wrapperList =新列表(); fileInfo.Setup(fl => fl.Name).Returns(「testing.jpg」);
fileInfo.Setup<Stream>(fl => fl.OpenRead()).Returns(fileStream.Object);
wrapperList .Add(fileInfo.Object);
wrapperList .Add(fileInfo.Object);
idataObject.Setup(p => p.GetData(DataFormats.FileDrop)).Returns(wrapperList .ToArray());
}
//我的功能(視圖模型)公共的BitmapImage SingleImageDropTest(IDataObject的IDATA){............. var中的文件=(的FileInfo [])dataObject時。的GetData(DataFormats.FileDrop);
...taking the first file from the files collection
FileInfo file = files[0];
if (file != null && IsImageFile(file.Extension))
{
//文件中讀取並返回其做工精細 }}
它以什麼方式不起作用?它是否編譯?測試失敗或通過不正確?您的測試似乎設置了一些模擬對象,但似乎沒有測試任何東西。 – 2010-10-11 12:24:04
我仍然停留在該代碼的中間,所以我找到了一些方法 – SOFextreme 2010-10-13 05:21:42