Testing wicket和AtUnit
我已经开始使用Wicket,并选择它作为依赖注入框架。现在我试图学习如何为网页对象编写单元测试 我在谷歌上搜索了一下,发现它提到了单位,所以我决定试试 我的网页类看起来像这样Testing wicket和AtUnit,testing,wicket,wicket-tester,atunit,Testing,Wicket,Wicket Tester,Atunit,我已经开始使用Wicket,并选择它作为依赖注入框架。现在我试图学习如何为网页对象编写单元测试 我在谷歌上搜索了一下,发现它提到了单位,所以我决定试试 我的网页类看起来像这样 public class MyWebPage extends WebPage { @Inject MyService service; public MyWebPage() { //here I build my components and use injected object.
public class MyWebPage extends WebPage
{
@Inject MyService service;
public MyWebPage()
{
//here I build my components and use injected object.
service.get(id);
....
}
}
我创建mock是为了用它替换任何生产myservicecimpl,我想手握AtUnit的Guice应该注入它
现在的问题是:
@Unit MyWebPage page = new MyWebPage();
wicketTester.startPage(page);
但通常我会用类名调用startPage在Wicket环境中,我真的找不到任何关于AtUnit的信息。我是否做错了什么,是否遗漏了什么?我不知道AtUnit,但我使用wicket和guice和TestNG。我认为AtUnit应该以同样的方式工作。重要的一点是使用guice创建web应用程序 这里是我如何为我的测试绑定所有这些东西的 我的所有测试都有一个抽象基类:
public abstract class TesterWicket<T extends Component> {
@BeforeClass
public void buildMockedTester() {
System.out.println("TesterWww.buildMockedTester");
injector = Guice.createInjector(buildModules());
CoachWebApplicationFactory instance =
injector.getInstance(CoachWebApplicationFactory.class);
WebApplication application = instance.buildWebApplication();
tester = new WicketTester(application);
}
protected abstract List<Module> buildModules();
好的,谢谢分享这个,仍然认为AtUnit不是WicketTester使用的最佳库。我想我会按照你的方式去做。
public class CoachWebApplicationFactory implements IWebApplicationFactory {
private static Logger LOG = LoggerFactory.getLogger(CoachWebApplicationFactory.class);
private final Injector injector;
@Inject
public CoachWebApplicationFactory(Injector injector) {
this.injector = injector;
}
public WebApplication createApplication(WicketFilter filter) {
WebApplication app = injector.getInstance(WebApplication.class);
Application.set(app);
app.addComponentInstantiationListener(new GuiceComponentInjector(app, injector));
return app;
}
}