0
所以我有一個問題,我沒有能夠找到一個解決方案後搜索互聯網。主要問題是當我使用自定義類型創建XmlSerializer
時,它會失敗,沒有理由。這隻發生在我創建的調用此函數的單元測試中。在正在使用的應用程序中,代碼按預期執行,並且全世界都很好。下面是一些代碼片段,顯示正在發生的事情。XmlSerializer問題在單元測試
public class ClassA
{
[XmlAttribute]
public string Id { get; set; }
public ClassA()
{
Id = string.Empty;
}
}
public class ClassB
{
[XmlAttribute]
public string Id { get; set; }
public ClassB()
{
Id = string.Empty;
}
}
public class SerializeClass
{
[XmlElement]
public string RandomString { get; set; }
[XmlArray]
public List<ClassA> ClassAs { get; set; }
[XmlArray]
public List<ClassB> ClassBs { get; set; }
[XmlIgnore]
public Int32 Count { get; set; }
public SerializeClass()
{
RandomString = string.Empty;
ClassAs = new List<ClassA>();
ClassBs = new List<ClassB>();
Count = 0;
}
}
public class XmlReaderClass
{
private SerializeClass _serializeClass;
public async Task<bool> Initialize()
{
bool loaded = false;
// If the rules are empty create and load them.
if (_rules == null)
{
_rules = new Rules();
StorageFile file = await StorageFile.GetFileFromApplicationUriAsync(new Uri("ms-appx:///FileToReadIn.xml"));
Stream stream = await file.OpenStreamForReadAsync();
XmlSerializer serializer = new XmlSerializer(typeof(SerializeClass));
XDocument document = XDocument.Load(stream);
_serializeClass = (serializer.Deserialize(document.CreateReader()) as SerializeClass);
loaded = true;
}
else
{
loaded = true;
}
return loaded;
}
}
所以只有當單元測試並初始化功能的上線失敗,並
XmlSerializer serializer = new XmlSerializer(typeof(SerializeClass));.
我需要在這個XML閱讀到相關的XML文件中的數據功能進行單元測試。
你能告訴我們確切的錯誤嗎? –
它沒有給出錯誤,測試只是停止,它顯示測試爲通過。 – tldragoon
哦!這是因爲你正在使用異步方法!你需要做測試處理。將測試方法的頭部改爲'public async Task MyTest()'應該可以解決這個問題。 –