Выбор параметров в тесте спектра
Я разрабатываю настольное приложение, используя Electron и NodeJS, но это не очень важно. Я использую спектр, чтобы проверить свое электронное приложение. Я реализовал функциональность для выбора между различными сохраненными базами данных через выпадающий список с опциями. Когда в раскрывающемся списке выбрана база данных, файл json с учетными данными обновляется в соответствии с выбранной базой данных. Я хочу написать тест, который проверяет, что файл json изменяется при выборе другой опции. Моя главная проблема - смоделировать выбор другой опции из выпадающего меню.
// Psuedo code for what how I want to solve this
it("DB connection file is updated correctly", function() {
read in json file with currently selected db credentials as a "before reference".
simulate the selection of another db in the dropdown list so that json file from before is changed.
read in changed json file
assert.notDeepEqual(beforeFile, updatedFile);
});
На чем я застрял, так это в той части, где мне нужно выбрать другой вариант в раскрывающемся списке, чтобы изменить текущую базу данных. Я читал документы Spectron, а также документы WebDrive rIO, но я до сих пор не могу заставить его работать.
В выпадающем меню всегда будет 3 базы данных по умолчанию, указанные в качестве параметров. Я перечислю HTML-код для раскрывающегося списка в:
<div id="list-container">
<form>
<label id="dropdown-label" for="connection-dropdown"><b>Database</b>:</label>
<fieldset id="dropdown-fset">
<select name="database" id="connection-dropdown">
</select>
</fieldset>
</form>
</div>
Застрял в течение более недели, и я не могу найти какой-либо способ решить это онлайн либо. Много вопросов о том, как работать со спектроном, но не было ответов, которые помогли мне в этот раз. Я, наверное, забыл упомянуть что-то, поэтому, пожалуйста, спросите, нужна ли дополнительная информация.
Спасибо!
2 ответа
Вы можете собирать элементы, вы можете собирать элементы "select" в #list-container, после чего вы можете использовать эти элементы.
То, на чем я застрял, - это та часть, где мне нужно выбрать другой вариант в раскрывающемся списке, чтобы изменить текущую базу данных.
Я не вижу фактических элементов option в вашем HTML, но если у вас будет что-то вроде этого:
<select name="database" id="connection-dropdown">
<option value="someValue0">uno</option>
<option value="someValue1">dos</option>
<option value="someValue2">tres</option>
<option value="someValue3">cuatro</option>
<option value="someValue4">cinco</option>
<option value="someValue5">seis</option>
</select>
Затем вы можете применить одну из нескольких опционных команд. Одним из них является selectByVisibleText (). Эта ссылка имеет хороший пример. Поместите эту настройку в beforeAll().