我遇到與Roboguice和JUNIT相關的問題。其實我做的一個非常小的測試,使其運行,代碼:JUnit中的Roboguice.setBaseApplicationInjector中的NullPointerException測試
import junit.framework.Assert;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import roboguice.RoboGuice;
import android.app.Application;
import android.content.Context;
public class FansworldClientTest {
TaskClient client;
@Mock
Application application;
@Mock
Context context;
@Before
public void setup() {
MockitoAnnotations.initMocks(this);
client = RoboGuice.getInjector(application).getInstance(TaskClient.class);
}
@Test
public void getTimestampTest() {
Assert.assertNotNull(application);
Assert.assertNotNull(context);
Assert.assertNotNull(client);
}
@After
public void teardown() {
RoboGuice.util.reset();
}
}
而且MVN測試命令拋出我:
顯示java.lang.NullPointerException:空 在roboguice.RoboGuice。 setBaseApplicationInjector(RoboGuice.java:116) 在roboguice.RoboGuice.getBaseApplicationInjector(RoboGuice.java:59) 在com.app.api.client.TaskClientTest.setup(TaskClientTest.java:38)
我正在使用Roboguice 2.0,Junit 4.8.2和Mockito 1.9.5。我也在嘗試這樣做:
MockitoAnnotations.initMocks(this);
RoboGuice.setBaseApplicationInjector(application, RoboGuice.DEFAULT_STAGE);
RoboGuice.getInjector(application).getInstance(FansworldClient.class);
而且結果相同。這是來自官方Roboguice項目的同一Astroboy2Test.class。
謝謝!
那麼,我可以使用Roboguice與Robolectric沒有Mockito或任何其他模擬庫? –
當然,只是一個嘲諷的庫相對簡化了定製模擬的創建,因爲您必須編寫較少的樣板代碼,並且可以使用Mockito的流暢API進行存根。 –
那麼,現在我面臨這個錯誤: https://github.com/robolectric/RobolectricSample/issues/10 –