我正在为将Handler作为参数的方法编写UnitTest,做一些工作,最后使用android.os.Message,如下所示:
Message m = Message.obtain(handler, code, payload)
m.sendToTarget()
此代码在运行时按预期工作,但是在单元测试中运行时,在调用sendToTarget时会抛出NullPointerException。
如果我使用可用的公共(但不建议使用Javadoc)构造函数创建消息,则:
Message m = new Message();
m.setTarget(handler);
m.what = code;
m.obj = payload;
一切正常,没有NullPointerException。
在单元测试中,静态工厂方法Message.obtain(...)
有什么问题?有什么我应该做些不同的事情,以便能够使用推荐的方法从池中获取消息而不是创建新消息。