2012-11-12 55 views
1

我在Windows Phone 7上有一個照片應用程序,現在試着用NUnit編寫一些單元測試。我試圖從嵌入式資源加載一些圖片,我嘗試了兩種不同的方法,但沒有人對我的作品......BitmapImage在NUnit中爲Windows Phone單元測試拋出System.DividByZeroException

  1. 該實例的BitmapImage對象時,給了我System.DivideByZero例外

    BitmapImage image = new BitmapImage(new Uri("data/data000.jpg")); 
    WriteableBitmap testData = new WriteableBitmap(image); 
    
  2. 這給了我「無法確定調用者的應用程序身份。」當調用PictureDecoder.DecodeJpeg()。

    using (var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("MyApp.Test.data.data000.jpg")) { 
        WriteableBitmap testData = PictureDecoder.DecodeJpeg(stream); 
    } 
    

任何想法還有什麼我應該做的,或嘗試? 我試過NUnit(來自NuGet)和NUnit-WindowsPhone(也來自NuGet)。

非常感謝!

編輯:有一件事我要補充的是,我通過ReSharper的運行試驗的情況下,我不知道,如果該事項...

問候, 凱恩

回答

0

如果我沒記錯,你有在單元測試類庫中的除mscorlib之外的所有引用中將「copy local」設置爲true。編輯:我相信你最好的選擇是重寫代碼,所以你只有在你的viewmodel中有圖像名稱(如果你使用MVVM?)。然後你可以測試你自己的邏輯,你正在選擇正確的圖像等。無論如何測試BitmapImage/WriteableBitmap是沒有意義的。

在非Silverlight運行時中運行Silverlight代碼的痛苦...

+0

是的,我對除mscorlib以外的所有引用都這樣做。 (如何mscorlib.extensions?) –

+0

編輯我的答案 – trydis