Я не знаю AtUnit, но я использую калитку с подсказкой и TestNG.Я полагаю, что AtUnit должен работать так же.Важным моментом является создание веб-приложения с использованием guice.
Вот как я связываю все эти вещи вместе для своих тестов.
У меня есть абстрактный базовый класс для всех моих тестов:
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();
Инициализация выполняется для каждого тестового класса.Подкласс определяет необходимые модули для теста в методе buildModules.
В моем IWebApplicationFactory я добавляю GuiceComponentInjector
.Таким образом, после создания всех компонентов поля, помеченные @Inject, заполняются Guice:
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;
}
}