簡體   English   中英

為什么不能在WP7單元測試項目中實例化我的頁面之一?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM