2015-04-21 4 views
1

Я следил за документацией Robolectric для создания теневых классов, но я не могу запускать теневые методы во время теста, он всегда использует оригинальные методы.Невозможно создать теневые классы с Robolectric 3

Это мой код:

оригинала класс:

public class Original { 
    public void print(){ 
     System.out.println("Hi from original class!"); 
    } 
} 

класс Shadow:

@Implements(Original.class) 
public class ShadowOriginal { 

    @Implementation 
    public void print(){ 
     System.out.println("Hi from shadow class!"); 
    } 
} 

тест:

@RunWith(RobolectricGradleTestRunner.class) 
@Config(manifest = "src/main/AndroidManifest.xml", 
     emulateSdk = 21, 
     reportSdk = 21, 
     constants = BuildConfig.class, 
     shadows = {ShadowOriginal.class}) 
public class OasisTests { 
    @Test 
    public void test() { 
     Original t = new Original(); 
     t.print(); 
    } 
} 

Когда я запускаю тесты , он всегда отображает "Hi from original class!"

Что не так в моем коде? Я использую

  • Android студия 1,2
  • robolectric 3,0-код2
  • robolectric-Gradle-плагин 1.0.1

Как я могу решить эту проблему?

Заранее спасибо

+0

Вы построили код «robolectric» с новым классом теней? – KOTIOS

+0

Да, да. Класс ShadowOriginal создается с помощью тестов. – reevolt

+0

ОК, поэтому банку, которая была построена с помощью урской сборки, добавила? – KOTIOS

ответ

2

Вам нужен заказ robolectric бегун, где вы можете зарегистрировать собственные классы, чтобы они могли быть в тени. См. Robolectric shadow not working

+0

Разве это не дублирование? –

+0

Да и нет, дублирование необходимо, чтобы дать поисковым вариантам возможность найти ответ. И мне не нравятся такие показательные плохие сообщения, которые включают полезный ответ, потому что они удаляются не очень умными модераторами. – nenick

+0

Что касается дублирования, то ничего плохого или хорошего сообщения. Это просто не повторять. Если вы получите обновление для вопроса в течение времени, это хорошо, чтобы обновить его, и все выиграют от его формы. Особенно это касается Robolectric, где вещи сломаны или изменены в течение нескольких дней даже недель –

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