Mockito/GWT:模拟视图的小部件为空

发布于 2025-01-08 12:18:36 字数 449 浏览 0 评论 0原文

我有一个包含列表框的视图(GWT MVP 模式)。 我使用 @Mock MyView 视图创建了一个测试用例然后在一个测试中我希望能够使用以下方法来控制列表框对象:

ListBox listBox = GwtReflectionUtils.getPrivateFieldValue(view, "tableListBox");

这将返回 null。

我遵循了本教程:http://code.google.com/p/ gwt-test-utils/wiki/SimpleUnitTest 使用相同的方式。

我看到的唯一区别是我使用的是 UIBinder,但是我读过的内容应该支持它。

谢谢!

I got a view (GWT MVP pattern) that contains a listbox.
I created a testcase using @Mock MyView viewThen in one test I want to be able to have a hand on the list box object using :

ListBox listBox = GwtReflectionUtils.getPrivateFieldValue(view, "tableListBox");

This returns null.

I followed this tutorial : http://code.google.com/p/gwt-test-utils/wiki/SimpleUnitTest which using the same way.

The only difference I see is I'm using UIBinder, however it should be supported from what I've read.

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

檐上三寸雪 2025-01-15 12:18:36

您使用的是模拟,当然未设置字段。使用模拟时,您必须考虑交互,而不是状态。 (实际上,对于生成的模拟,如mockito、powermock、easymock等,这个说法是正确的。)

wiki链接示例不使用模拟,它们显示真实的对象!

我想你会对间谍更感兴趣。您可以使用@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.

希望有帮助。

You are using a mock, of course fields aren't set. When working with mocks you have to think about interactions, not state. (Actually this statement is true with generated mocks like those of mockito, powermock, easymock, etc.)

The wiki links examples don't use mocks, they show real objects!

I think you will be more interested by a spy. You can use @Spy.
In mockito 1.9.0 you can write :

@Spy MyView view = new MyView(paramA, paramB);

or if MyView has default constructor

@Spy MyView view = new MyView();
@Spy MyView view; // equivalent, mockito will call the default constructor

For more information take a look at the javadoc.

Hope that helps.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文