0

我正在尝试将单元测试合并到一个小型 WP7 录音应用程序中,以使自己熟悉这个概念。我已经阅读了一些有关该主题的内容,并且正在使用 Windows Phone Toolkit 测试框架。总的来说,我是 WP7 平台的新手,几乎完全是单元测试的概念。

我在 MSDN 博客上关注了Amit Chatterjee 的示例单元测试,并相信我的单元测试项目设置正确。但是,当我运行以下测试时:

[TestMethod]
[Description("Should always have this. Check if MainPage is created without problems.")]
public void CheckMainPageNotNull()
{
   AudioRecorder.MainPage recorder = new AudioRecorder.MainPage();
   Assert.IsNotNull(recorder);
}

它失败。我知道 Assert 永远不应该失败,这主要是一个微不足道的测试,看看我是否正确设置了框架,而我显然没有。AudioRecorder 是主要项目的名称。单元测试报告员告诉我,我遇到了未处理的 XamlParseException:

在 AudioRecorder.MainPage.InitializeComponent() 在 AudioRecorder.MainPage...ctor( ) 在...等。

我已经[assembly: InternalsVisibleTo("AudioRecorderUnitTests")]设置好了AssemblyInfo.cs,老实说,我对我设置不正确的东西感到困惑。是否有人对 Windows Phone Toolkit 测试框架有任何见解或任何好的示例用于一个重要的示例?将不胜感激。

4

2 回答 2

0

我相信我终于找到了原因,如果不是一个实际的解决方案的话。我在主项目的 App.xaml 中定义了一个名为 AppNameUpper 的自定义 ApplicationResource。似乎当单元测试项目试图解析这个时,它抛出了一个异常。删除该资源和对它的所有引用似乎已经解决了这个问题。

我不明白我是如何将 ApplicationResources 与单元测试框架结合使用的,但这是另一个问题的问题,而且很可能需要更多的研究。

于 2013-02-17T10:27:52.300 回答
0

问题可能是对StaticResource您在App.xaml. 由于未使用正在测试的应用程序的Application类,因此无法解析引用。即使您“新建”了它,它也不会起作用,因为它Application.Current是您的单元测试应用程序。

我建议不要从您的单元测试应用程序测试您的视图(页面),而是您的视图模型。

如果这对您来说不可能,您可能需要考虑在单元测试项目中声明相同的资源。不过,老实说,这样做会让它们越来越不像“单元测试”,而更像是维护的噩梦。

于 2013-02-17T10:36:40.237 回答