Я строю интерфейс с использованием Ratpack и конвейера активов и тестирую его с помощью Geb. Мне нужно, чтобы некоторые из страниц были динамическими, а поскольку Knockoutjs, похоже, больше не находится в разработке, я использую VueJS. Моя проблема в том, что, хотя я могу визуально видеть данные из моей модели Vue, мои тесты Geb ломаются, поскольку контент не найден. Я попытался добавить дополнительное время, переключившись на разные браузеры (я в основном использую PhantomJS, но пробовал с Firefox и Chrome), и каждый раз я не могу видеть элементы, когда он работает в этой моде. Я мог смотреть в сторону и продолжать развиваться, но это не кажется правильным, если я не могу хотя бы подтвердить, что контент появляется на странице. Я знаю, что Vue относительно нова, но я предполагаю, что то же самое произойдет, если вы используете что-то, используя ReactJS. Я добавил соответствующие части кода ниже. Каков наилучший способ проверить это?geb-тестирование на ratpack и vuejs
build.gradle
testCompile "org.spockframework:spock-core:1.0-groovy-2.4", {
exclude module: "groovy-all"
}
testCompile "org.gebish:geb-spock:0.10.0"
// Geb integration
testCompile "org.seleniumhq.selenium:selenium-chrome-driver:2.51.0"
testCompile "org.seleniumhq.selenium:selenium-firefox-driver:2.51.0"
testCompile("com.codeborne:phantomjsdriver:1.2.1") {
// phantomjs driver pulls in a different selenium version
transitive = false
}
vuetest.gtpl
layout 'layouts/main.gtpl',
title: 'Vue Test',
bodyContents: contents {
div('id':'main'){
p "The result is:"
vuetest{}
}
}
VueTest.js
Vue.component('vuetest', {
template: '<p>Hello from Vue</p>'
})
VueTestPage.groovy
import geb.Page
class VueTestPage extends Page {
static url = "/"
static at = { title == "Vue Test" }
static content = {
vueGreeting(required:false){$('p',text:"Hello from Vue").text()}
}
}
ГЭБ тест
def "vue testing"(){
when:
to VueTestPage
then:
at VueTestPage
waitFor(vueGreeting.displayed) //fails
}