записанные тестовые сценарии selenium IDE не обрабатывают исключения / ошибки? - PullRequest
0 голосов
/ 28 февраля 2020

Я записал тестовый случай для реагирующей функции 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 })
        })
}


Как мне обрабатывать исключения / ошибки для этого конкретный сценарий? Пожалуйста, помогите, показав примеры для моего теста.

...