2013-07-02 4 views
2

Я пытаюсь настроить некоторые тесты для некоторого существующего кода и должен быть в состоянии издеваться над такими вещами, как ViewFlipper.FindViewById.Xamarin: тестирование приложений Android с использованием Moq/NUnit и MockContext?

До сих пор мне приходилось создавать макетную упаковку для ViewFlipper. Теперь проблема заключается в том, что я хочу вернуть издеваемое представление. В издевающемся представлении должен быть введен Контекст в его ctor. Я нашел класс MockableContext в пространстве имен Java.Test, но ему, похоже, не нравится его появление? Я получаю null ref исключения?

Должен ли я использовать этот класс таким образом? Есть ли другой способ сделать это? Простое создание нового Mock<Context> не работает:/

ответ

0

Вы пытались использовать свойство Android.App.Application.Context, которое, на наш взгляд, эквивалентно собственности Android.Content.Context.ApplicationContext, за исключением того, что оно статично и доступно везде.

я наткнулся на нее в этом переполнением стека ответ здесь:

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

0

Проблема связана с тест-блоков, работающих в качестве сборки .NET, которая просто не существует в «контексте» (каламбур предназначенный), Android.

Рассмотрение Android.App.Application.Context приведет к тому же исключению.

Android.Test.Mock.MockContext - это оболочка кода Java, и при запуске модульного теста сборка выполняется в среде Windows, а не в среде Java.

Было бы неплохо иметь возможность модульного тестирования взгляда Xamarin ... но я не уверен, что можно издеваться над контекстом Android, который требуется.

Смежные вопросы