2

我正在尝试为一些现有代码设置一些测试,并且需要能够模拟ViewFlipper.FindViewById.

到目前为止,我必须为ViewFlipper. 现在我遇到的问题是我想返回一个模拟视图。模拟视图需要将 Context 传递给它的 ctor。我MockableContext在命名空间中找到了这个类,Java.Test但它似乎不喜欢被更新?我得到空引用异常?

我应该能够以这种方式使用这个类吗?还有另一种方法可以做到这一点吗?简单地创建一个新的Mock<Context>也不起作用:/

4

2 回答 2

0

您是否尝试过使用我认为等同于 Android.Content.Context.ApplicationContext 属性的Android.App.Application.Context属性,除了它是静态的并且随处可用。

我在这里的 Stack Overflow 答案中遇到了它:

https://stackoverflow.com/a/19248475/1071320

于 2014-05-07T09:01:07.257 回答
0

该问题是由于作为 .NET 程序集运行的测试单元根本不存在于 Android 的“上下文”(双关语)中。

检查 Android.App.Application.Context 将导致相同的异常。

Android.Test.Mock.MockContext 是 Java 代码的包装器,当运行单元测试时,程序集在 Windows 环境中运行,而不是在 Java 环境中。

能够对 Xamarin 视图进行单元测试会很好......但我不确定是否可以模拟所需的 Android 上下文。

于 2014-12-16T23:05:26.693 回答