2016-11-05 16 views
9

Piszę test jednostki Robolectric, który wymaga, żebym użył działania w klasie testowej wiążącej dane testu (ViewDataBinding), niestety bez powodzenia jestem skazani że był zerowy wewnątrz badanej jednostkiPobierz pole aktywności "ViewDataBinding" wewnątrz testu "Robolectric" po przypisaniu

wewnątrz MainActiviy Klasa:

... 
ActivityMainBinding binding; // <-- this field returns null inside unit test 
... 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    binding = DataBindingUtil.setContentView(this, R.layout.activity_main); 
} 
... 

Jeśli ktoś pisze test z podobnym wymogiem proszę można wykazać przykład, w jaki sposób dostał ViewDataBinding zaklasyfikowane do być przypisane przed zakończeniem testu. Dzięki!

Uwaga: Używam Android Studio 2.2

+0

Czy Twój kod jest dostępny publicznie? –

+0

@EugenMartynov Niestety, nie jest to coś, co przyda się na przyszłe testy z Androidem DataBinding i 'Robolectric' –

+1

Spróbuję uzyskać projekt Open Source z DataBinding i dodać Robolectric do niego –

Odpowiedz

0

I okazało się, że badania z Robolectric wersji 3.1 był mój problem, a po uaktualnieniu do korzystania Robolectric wersję 3.1.4 działania ViewDataBinding pola nie wracał null

Zobacz PR: https://github.com/emartynov/android-architecture/pull/1

Dzięki @EugenMartynov za Twój wkład w tę kwestię.

Uwaga: Używany Gradle wersja 3.1 na budowę projektu, jeśli zdecydujesz się skorzystać Gradle wersji 3.1 i występują inne problemy po upgrading.Kindly spojrzenia na Gradles change logs aby zaktualizować skrypty Gradle budować (build.gradle) odpowiednio, przed komentując inne niezwiązane problemy.

Powiązane problemy