如何使用Mockito获取位图资源?

red*_*888 2 java android unit-testing mockito

我的课需要一个位图,但模仿者的模仿上下文对象无法做到这一点:

    public class PlayerTest {

        @Mock // Mocking the android context class
        Context mMockContext;
        // intantiating object from that mocked class
        Context mContext;

        private Player player;
        private Bitmap playerBitmap;

        private int screenX;
        private int screenY;

        @Before
        public void setupPlayer(){
            playerBitmap = BitmapFactory.decodeResource(mContext.getResources(), R.drawable.player);
            player = new Player(mContext, screenX, screenY,playerBitmap);
        }
...
Run Code Online (Sandbox Code Playgroud)

Thr*_*nCA 5

你就不能标注private Bitmap playerBitmap@Mock

我看不到课程的其余部分,但我想您正在使用Mockito JUnit运行器。如果没有,则需要使用它,或调用MockitoAnnotations.initMocks(this)设置方法。

  • 它动态创建“Bitmap”的子类,默认情况下所有方法都被删除。我想你会发现如果“Bitmap”类是“final”,它就不起作用。 (2认同)
  • @ red888提示:您不应该使用技术,因为您可以**。看来您只是开始使用Mockito框架,而无需进一步思考这些内容实际上是关于什么的。不要那样做 您应该了解代码包含的每一行以及这些行上的每个字符。当您不知道在运行时会导致什么时,盲目使用框架并写下“ @Mock”是没有意义的。因此,开始进行一些研究,例如,使用http://www.vogella.com/tutorials/Mockito/article.html (2认同)