1

我在 Windows Phone 7 上有一个照片应用程序,现在尝试用 NUnit 编写一些单元测试。我正在尝试从嵌入式资源中加载一些图像,我尝试了两种不同的方法,但它们都不适合我......

  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 运行测试用例,我不确定这是否重要......

问候,凯恩

4

1 回答 1

0

如果我没记错的话,您必须在单元测试类库中除 mscorlib 之外的所有引用上将“复制本地”设置为 true。

编辑:我相信您最好的选择是重写代码,因此您的视图模型中只有图像名称(如果您使用的是 MVVM?)。然后你可以测试你自己的逻辑,你正在选择正确的图像等。无论如何测试 BitmapImage/WriteableBitmap 是没有意义的。

在非 Silverlight 运行时运行 Silverlight 代码的痛苦……

于 2012-11-13T23:32:15.627 回答