我正在尝试为一些现有代码设置一些测试,并且需要能够模拟ViewFlipper.FindViewById
之类的内容。
到目前为止,我必须为ViewFlipper
创建一个可模拟的包装器。现在我遇到的问题是我想要返回一个模拟的视图。模拟的视图需要将一个Context传递给它的ctor。我在MockableContext
命名空间中找到了Java.Test
类,但它似乎不喜欢被新建?我得到null ref例外?
我应该能够以这种方式使用这个课吗?还有另一种方法吗?简单地创建新的Mock<Context>
也不起作用:/
答案 0 :(得分:0)
您是否尝试使用我认为等同于Android.App.Application.Context属性的Android.Content.Context.ApplicationContext属性,除了它是静态的并且随处可用。
我在这个Stack Overflow答案中遇到了它:
答案 1 :(得分:0)
问题是由于测试单元作为.NET程序集运行,在Android的“上下文”(双关语)中根本不存在。
检查Android.App.Application.Context将导致相同的异常。
Android.Test.Mock.MockContext是Java代码的包装器,在运行单元测试时,程序集在Windows环境中运行,而不是在Java环境中运行。
能够对Xamarin视图进行单元测试会很好......但我不确定是否可以模拟所需的Android上下文。