我正在尝试将单元测试整合到一个小型WP7音频录制应用程序中,以便熟悉这个概念。我已经完成了一些关于这个主题的阅读,并且正在使用Windows Phone Toolkit测试框架。我是WP7平台的新手,几乎完全是单元测试的概念。
我在MSDN博客上关注Amit Chatterjee's example单元测试,并且相信我已正确设置了我的单元测试项目。但是,当我运行以下测试时:
[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:
找不到名称/密钥AppNumberUpper的资源[行:20 位置:35]在System.Windows.Application.LoadComponent(Object 组件,Uri resourceLocator) AudioRecorder.MainPage.InitializeComponent()at AudioRecorder.MainPage ... ctor()at ... etc。
我[assembly: InternalsVisibleTo("AudioRecorderUnitTests")]
设置了AssemblyInfo.cs
,老实说,我错误地设置了错误。有没有人有任何见解,或者在一个非常重要的例子中使用Windows Phone Toolkit测试框架的任何好例子?非常感谢。
答案 0 :(得分:0)
我相信如果不是一个真正的解决方案,我终于找到了原因。我在主项目的App.xaml中定义了一个名为AppNameUpper的自定义ApplicationResource。似乎单元测试项目试图解析它时,它抛出异常。 删除该资源以及对它的所有引用似乎都解决了这个问题。
我不明白的是我是如何将ApplicationResources与单元测试框架结合使用的,但这是另一个问题的问题,也是更多研究的问题。
答案 1 :(得分:0)
问题可能是您在StaticResource
中声明的App.xaml
的引用。由于未使用正在测试的应用程序的Application类,因此无法解析引用。即使你做了“新”它,它也行不通,因为Application.Current
是你的单元测试应用程序。
我建议您不要在单元测试应用程序中测试视图(页面),而是测试您的视图模型。
如果您不可能,则可能需要考虑在单元测试项目中声明相同的资源。说实话,这样做会让他们越来越不像“单元测试”,更像是维护噩梦。