2013-09-20 2 views
1

Я пишу некоторые сквозные тесты интеграции для библиотеки GWT, которая является тонкой оболочкой поверх существующей библиотеки JavaScript. Я хотел бы написать свои интеграционные тесты с инфраструктурой GWTTestCase. Однако, когда я запускаю единичный тест, он просто подтягивает мой тестовый код в каком-то файле «junit-standards.html», а затем быстро терпит неудачу, потому что он ожидает, что глобальный объект будет прикреплен к окну из библиотеки I 'm wrapping.Как включить сторонний javascript для запуска до моего GWTTestCase?

Есть ли способ настроить GWTTestCase так, чтобы он включал сторонний javascript перед запуском теста?

ответ

1

Используйте вспомогательный помощник ScriptInjector для загрузки внешнего javascript и используйте обратный вызов, чтобы продолжить свой тест.

ScriptInjector 
    .fromUrl("http://my_3party_js") 
    .setCallback(
    new Callback<Void, Exception>() { 
     public void onFailure(Exception reason) {} 
     public void onSuccess(Void result) { 
     // test something 
     } 
    }) 
    .inject(); 

Вы можете использовать в качестве ссылки на GWTTestCase s, которые в тесте ScriptInjectorTest.java от gwtproject.

+1

Один совет, который я нашел в другом месте, - это добавить «.setWindow (ScriptInjector.TOP_WINDOW)» к вызову, чтобы сделать скрипт доступным через $ wnd.myfunc() – Stevko

Смежные вопросы