У меня есть проект тестирования Silverlight, использующий Silverlight Unit Test Framework .
Я хочу протестировать метод в моей модели представления, который принимает объекты FileInfo. Кажется, это работает нормально, когда я тестирую его вручную через пользовательский интерфейс.
Теперь я хочу модульное тестирование только для метода AddDocument. Я не хочу проверять фактическое нажатие кнопки или имитировать нажатие кнопки - я просто хочу проверить этот метод AddDocument.
Вот код, показанный сзади. Объект mySessionViewModel находится в DataContext. Метод, который я хочу проверить, это mySessionViewModel.AddDocument ();
private void Button_Click_1(object sender, RoutedEventArgs e)
{
OpenFileDialog openFileDialog1 = new OpenFileDialog();
openFileDialog1.Filter =
"Text Files (.txt)|*.txt|All Files (*.*)|*.*";
openFileDialog1.FilterIndex = 1;
openFileDialog1.Multiselect = true;
bool? userClickedOK = openFileDialog1.ShowDialog();
if (userClickedOK == true)
{
IList<FileInfo> files = new List<FileInfo>();
foreach (FileInfo file in openFileDialog1.Files)
{
mySessionViewModel.AddDocument(file);
}
}
}
Я поместил несколько тестовых файлов в подкаталог веб-проекта и попробовал это, но он выдает исключение SecurityException, соответствующее модели безопасности Silverlight:
SessionView sessionViewModel = new SessionViewModel();
DirectoryInfo di = new DirectoryInfo("testFiles");
var files = di.EnumerateFiles();
foreach (var file in files)
{
sessionViewModel.AddDocument(file);
}
// assert some stuff