В моем тестовом проекте у меня есть ViewModel, который должен загрузить список объектов из файла ресурсов в приложении:
private List<XapBus> staticBusList = new List<XapBus>();
public XapEditorViewModel(ObservableCollection<XapDevice> deviceList, ObservableCollection<XapBus> busList)
{
DeviceList = deviceList;
BusList = busList;
string imagePath = "pack://application:,,,/Settings/BusSettingsSourceItems.xml";
System.Windows.Resources.StreamResourceInfo imageInfo = System.Windows.Application.GetResourceStream(new Uri(imagePath));
var stream = new StreamReader(imageInfo.Stream, false);
XmlSerializer ser = new XmlSerializer(typeof(List<XapBus>));
staticBusList = (List<XapBus>)ser.Deserialize(stream);
stream.Close();
}
И в моих тестовых методах я инициализирую ViewModel:
[TestMethod]
public void ViewModel_BusListIsNull_ReturnsFalse()
{
//Arrange
XapEditorViewModel VM = new XapEditorViewModel();
//Act
VM.BusList = null;
bool isOK = VM.AddBus(new XapBus());
//Assert
Assert.IsFalse(isOK);
}
Когда я запускаю тесты, я получаю исключение System.UriFormatException.
Я нашел вопрос о стеке потока, который использует это:
[TestInitialize]
public void OnTestInitialize()
{
UriParser.Register(new GenericUriParser(GenericUriParserOptions.GenericAuthority), "pack", -1);
}
Я добавил его, но безуспешно...
Есть идеи?
Спасибо!