Я пытаюсь настроить модульные тесты для моего проекта WPF. У меня есть открытый метод с именем MoveSelectionOutOfSelectedBox в проекте под названием WPFTester. Вот метод ...
public void MoveSelectionOutOfSelectedBox(object sender, RoutedEventArgs e)
{
if (testSelectedBox.Items.Count == 1 && testSelectedBox.SelectedItem == null)
{
testSelectedBox.Items.Clear();
testSelectedBox2.Items.Clear();
spOptionsAcceptableRangeMax.Visibility = spOptionsAcceptableRangeMin.Visibility = spOptionsLabel.Visibility = spOptionsValue.Visibility = Visibility.Hidden;
xmlData2.Clear();
}
else
{
xmlData2.RemoveAt(testSelectedBox.SelectedIndex);
testSelectedBox.Items.RemoveAt(testSelectedBox.SelectedIndex);
if (testSelectedBox.Items.Count == 0)
{
spOptionsAcceptableRangeMax.Visibility = spOptionsAcceptableRangeMin.Visibility = spOptionsLabel.Visibility = spOptionsValue.Visibility = Visibility.Hidden;
xmlData2.Clear();
}
else
{
LoadOptionsForCertainIndex(0);
}
}
UpdateTestEstimate();
}
Затем я создал отдельный проект в том же решении, которое называется ORCTests. Внутри класса в ORCTests под названием UnitTest1.cs у меня есть следующий тест ...
using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using WpfTester;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Reflection;
using System.Windows.Media.Imaging;
using System.Xml;
namespace ORCTests
{
[TestClass]
public class UnitTest1
{
[TestMethod]
public void TestMethod1()
{
var wpf = new MainWindow();
wpf.LoadDeviceBox();
Assert.IsTrue(WpfTester.MainWindow.xmlData.Count > 0);
}
}
}
Когда я отлаживаю это, я вхожу в MainWindow (), но получаю сообщение об ошибке в первой строке MainWindow, которая просто устанавливает динамические пути. Вот первая строка MainWindow () ...
string binaryDocumentPath = System.IO.Path.GetDirectoryName (System.Reflection.Assembly.GetEntryAssembly (). Location) + "/ Documents /";
В режиме отладки я получаю следующую ошибку в этой строке ....
System.NullReferenceException
HResult=0x80004003
Message=Object reference not set to an instance of an object.
Source=WpfTester
StackTrace:
at WpfTester.MainWindow..ctor() in C:\Users\StarkS02\source\repos\WpfTester\WpfTester\MainWindow.xaml.cs:line 26
at ORCTests.UnitTest1.TestMethod1() in C:\Users\StarkS02\source\repos\WpfTester\ORCTests\UnitTest1.cs:line 24
Когда я запускаю этот метод нормально, а не в модульном тесте, я не получаю сообщение об ошибке в этой строке. Есть идеи, почему я получаю эту ошибку?