【发布时间】:2011-06-21 21:50:36
【问题描述】:
我已经开始使用 Wicket 并且选择了 Guice 作为依赖注入框架。现在我正在尝试学习如何为 WebPage 对象编写单元测试。
我用谷歌搜索了一下,我找到了this post,但它提到了 AtUnit,所以我决定试一试。
我的网页类看起来像这样
public class MyWebPage extends WebPage
{
@Inject MyService service;
public MyWebPage()
{
//here I build my components and use injected object.
service.get(id);
....
}
}
我创建了一个 mock 来用它替换任何生产 MyServiceImpl,我猜 Guice 与 AtUnit 应该注入它。
现在的问题是:
-
AtUnit 期望我用 @Unit 标记目标对象 - 没关系,因为我可以将已创建的对象传递给 WicketTester
@Unit MyWebPage page = new MyWebPage(); wicketTester.startPage(page);但通常我会用类名调用 startPage。
我认为 AtUnit 也期望目标对象是带有 @Inject 的市场,因此 AtUnit 可以创建和管理它 - 但我得到一个 org.apache.wicket.WicketRuntimeException: There is no application attach to当前线程主线程。我可以指示 AtUnit 使用来自 wicketTester 的应用程序吗?
- 因为我不在 MyWebPage 上使用 @Inject(我认为)所有应该由 Guice 注入的对象都是空的(在我的示例中,服务引用是空的)
我真的在 Wicket 环境中找不到任何关于 AtUnit 的信息。我做错了什么,我错过了什么吗?
【问题讨论】:
标签: testing wicket wicket-tester atunit