使用Mockito中的InjectMock注释和尚未初始化的对象

时间:2015-02-13 21:14:31

标签: java android unit-testing android-fragments mockito

我正在尝试使用Mockito对Android应用程序进行单元测试,特别是使用newInstance()进行初始化的片段。我无法将我的Mock对象注入到被测对象的私有成员变量中。我看过的所有示例都使用new()代替newInstance(),并在初始化的同一行显示@InjectMocks注释。我是否可以不使用注释声明变量,而是等待稍后初始化它?

我有:

public class  MyFragmentTest extends TestCase {
    @Mock (name="memberVariableName") private MyObject mMyObjectMock;
    @InjectMocks private MyFragment mFragment;

    @Override
    protected void setUp() throws Exception {
       super.setUp();
       // Initialize mock objects that are being injected
       MockitoAnnotations.initMocks(this);

       // Work around for a known issue with Mockito and Dexmaker
       System.setProperty("dexmaker.dexcache", getInstrumentation().getTargetContext().getCacheDir().getPath());
    }
}

0 个答案:

没有答案