Я сталкиваюсь с трудностями при использовании UnitTesting в Silverlight (inbrowser) с использованием Mock для считывания файла в мою ViewModel.
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
var fileInfo = new Mock (); // Я не умею издеваться над FileInfo
var fileInfo = new FileInfo ("test.jpg");
Спасибо, Джонни, я сделал так, как следует, и не работал, и вот мой пример кода.
новый класс интерфейса
открытый интерфейс IFileInfo {string Name {get; set;} FileStream Open (режим FileMode); }
новый класс Wrapper
открытый класс FileInfoWrapper: IFileInfo {частный FileInfo fileInfo; public FileStream OpenRead () {вернуть this.OpenRead (); } публичная строка Name {get {return this.Name; } set {this.Name = value; }}
} * * тысяча двадцать-один
В моем тестовом классе
[TestMethod] [Асинхронный] public void MultiFileDropTest () {list wrapperList = new list (); 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());
}
// моя функция (ViewModel) public BitmapImage SingleImageDropTest (IDataObject iData) {............. var files = (FileInfo []) dataObject.GetData (DataFormats.FileDrop);
...taking the first file from the files collection
FileInfo file = files[0];
if (file != null && IsImageFile(file.Extension))
{
// Файл для чтения и возврата растрового кода, который работает нормально
}}