Я записал тестовый случай для реагирующей функции js с использованием IDE Селена. Функция создаст новую папку на целевом экране моего приложения. Теперь предположим, что API, отвечающий за создание папки, останавливается или завершает работу тогда создание папки не произойдет, и в консоли chrome отобразится сообщение об ошибке «Не удалось загрузить ресурс: net :: ERR_CONNECTION_REFUSED». Но в моей консоли IDE Селена говорится, что тест создания папки успешно прошел, хотя процесс создания папки не происходил. Так как мне написать указанный c код для обработки исключения, если я не получил ответ от API создания папки.
В настоящее время я экспортировал записанный тестовый пример в селен IDE на (javascript + mocha) язык.
Экспортированный тестовый сценарий
// Generated by Selenium IDE
const { Builder, By, Key, until } = require('selenium-webdriver')
const assert = require('assert')
describe('Untitled', function() {
this.timeout(30000)
let driver
let vars
beforeEach(async function() {
driver = await new Builder().forBrowser('firefox').build()
vars = {}
})
afterEach(async function() {
await driver.quit();
})
it('Untitled', async function() {
await driver.get("http://localhost:3000/")
await driver.manage().window().setRect(1382, 744)
await driver.findElement(By.css(".butt > span")).click()
await driver.findElement(By.css("input:nth-child(2)")).click()
await driver.findElement(By.css("input:nth-child(2)")).sendKeys("radical")
await driver.findElement(By.css("input:nth-child(2)")).sendKeys(Key.ENTER)
await driver.close()
})
})
Функция, отвечающая за создание папки (React js) -
async createnewFolder(event) {
var code = event.keyCode || event.which;
let { newfolder, folderList, alert, alertMessage } = this.state;
if (code === 13) {
await request(APIURL + '/folders/create_folders', 'POST', { "name": event.target.value })
.then(data => {
let folderJson = {
id: data.data.data.id,
name: data.data.data.name
}
folderList.push(folderJson);
})
.catch(err => {
this.setState({ alert: true, alertMessage: ["danger", "something went wrong"] })
setTimeout(() => {
this.setState({ alert: false, alertMessage: [] })
}, 2000);
})
this.setState({ newfolder: null, folderList })
}
}
Api для создания папки (Node js)
const models = require('./../../models')
module.exports = create_folders = (req, res) => {
const { name } = req.body
models.folders.findOrCreate({ where: { name: name }, defaults: { name: name } })
.spread((folder, created) => {
if (!created)
res.status(200).send({ message: 'Folder already exists!', status: false,
data: folder.dataValues });
else
res.status(200).send({ message: 'Folder created successfully!', status: true, data: folder.dataValues })
}).catch((e) => {
res.status(500).send({ message: 'Internal server error', e })
})
}
Как мне обрабатывать исключения / ошибки для этого конкретный сценарий? Пожалуйста, помогите, показав примеры для моего теста.