[英]Why can't I instantiate one of my Pages in a WP7 unit test project?
我试图将单元测试合并到小型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);
}
它失败。 我知道断言永远都不会失败,这主要是一项琐碎的测试,以查看我是否正确设置了框架,而我显然没有这样做。 AudioRecorder是主要项目的名称。 单元测试报告者告诉我,我遇到了未处理的XamlParseException:
在System.Windows.Application.LoadComponent(对象组件,Uri resourceLocator)在AudioRecorder.MainPage.InitializeComponent()的AudioRecorder.MainPage ... ctor()上找到名称/关键字为AppNumberUpper [Line:20 Position:35]的资源)在...等
我在AssemblyInfo.cs
设置了[assembly: InternalsVisibleTo("AudioRecorderUnitTests")]
,说实话我对我的设置有误。 在非平凡的示例中,是否有人对Windows Phone Toolkit测试框架有任何见识或良好的示例? 任一个将不胜感激。
我相信我终于找到了原因,即使不是实际的解决方案。 我在主项目的App.xaml中定义了一个名为AppNameUpper的自定义ApplicationResource。 看起来当单元测试项目试图解析它时,它抛出了一个异常。 删除该资源及其所有引用似乎已解决了该问题。
我不了解如何将ApplicationResources与单元测试框架结合使用,但这是另一个问题,而且很有可能是更多研究的问题。
该问题可能是对您在App.xaml
声明的StaticResource
的引用。 由于未使用正在测试的应用程序的Application类,因此无法解析引用。 即使您进行了“新”操作,它也不起作用,因为Application.Current
是您的单元测试应用程序。
我建议不要在单元测试应用程序中测试视图 (页面),而应在视图模型中进行测试。
如果这对您来说是不可能的,那么您可能要考虑在单元测试项目中声明相同的资源。 但是,老实说,这样做会使它们越来越像“单元测试”,而越来越像维护噩梦。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.