我有一个包含列表框的 View (GWT MVP 模式)。
我使用 @Mock MyView View 创建了一个测试用例
然后在一个测试中我希望能够使用以下方法来控制列表框对象:
ListBox listBox = GwtReflectionUtils.getPrivateFieldValue(view, "tableListBox");
这将返回 null。
我遵循了本教程:http://code.google.com/p/gwt-test-utils/wiki/SimpleUnitTest使用相同的方式。
我看到的唯一区别是我使用的是 UIBinder,但是我读过的内容应该支持它。
谢谢!
最佳答案
您正在使用模拟,当然未设置字段。使用模拟时,您必须考虑交互,而不是状态。 (实际上,对于像mockito、powermock、easymock等生成的模拟来说,这种说法是正确的。)
维基链接示例不使用模拟,它们显示真实的对象!
我认为您会对 spy 更感兴趣。您可以使用@Spy。 在mockito 1.9.0中你可以这样写:
@Spy MyView view = new MyView(paramA, paramB);
或者如果 MyView 有默认构造函数
@Spy MyView view = new MyView();
@Spy MyView view; // equivalent, mockito will call the default constructor
有关更多信息,请查看javadoc .
希望有帮助。
关于java - Mockito/GWT : mocked view's widgets are null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9418085/