【发布时间】:2016-03-25 06:57:42
【问题描述】:
我在 Visual Studio 2013 中为 Windows 8 Metro(又名 WinRT)创建了一个应用程序。我通过使用 DataContractSerializer 序列化为 XML 来保存用户数据。我还为单元测试添加了一个单元测试项目。我想测试从 XML 保存/加载。它在我的应用程序中运行良好,我可以浏览到“LocalState”文件夹并验证 XML 是否包含正确的数据。然而,单元测试方法似乎并没有像主应用程序那样创建任何 XML 文件,尽管声称已经“通过”。
单元测试是否将其数据存储在其他地方?我如何才能真正访问 XML 文件?理想情况下,我想使用单元测试来生成大型数据集,然后将它们加载到主应用程序中,因此仅保存/加载/检查相等性是不够的。
这是我用来保存数据的代码,它在主应用程序中也能正常工作。
string localData = ObjectSerializer<myObject>.Serialize(_myObject);
if (!string.IsNullOrEmpty(localData))
{
StorageFile localFile = await ApplicationData.Current.LocalFolder.CreateFileAsync("Data.xml", CreationCollisionOption.ReplaceExisting);
await FileIO.WriteTextAsync(localFile, localData);
}
【问题讨论】:
-
没有通用的“单元测试”——所以除非你发布你的测试代码,否则绝对没有办法找出你的测试出了什么问题。
-
就创建单元测试而言,您可能走错了路。它与浏览文件夹、读取光盘和存储大量数据无关。
标签: c# unit-testing windows-8 windows-runtime