Мокко асинхронных крючков не работает? - PullRequest
0 голосов
/ 29 мая 2018

Я всегда получаю страницу как неопределенную в этой структуре.Кажется, ни один из крючков мокко не работает.Я попытался добавить async к описанию верхнего уровня, я попытался добавить готовые операторы.Я даже пытался использовать Promise.then.catch.Все без удачи.

const should = require('chai').should()
const puppeteer = require('puppeteer')

const puppeteerConfig = {
    headless: true,
    args: ['--no-sandbox', '--disable-translate', '--disable-extensions', '--disable-sync']
}

var browser
var page

describe('...', function() {

    before(async function() {
        browser = await puppeteer.launch(puppeteerConfig)
    })

    after(async function() {
        await browser.close()
    })

    beforeEach(async function() {
        page = await browser.newPage()
    })

    afterEach(async function() {
        await page.close()
    })

    describe('...', async function() {
        before(async function() {
            console.log(page) // undefined
        }
    })
})

1 Ответ

0 голосов
/ 29 мая 2018

Благодаря @Akshendra Pratap, эта суть показала, почему это прежде не удалось.Я создал функцию верхнего уровня:

async function genHTML(page) {
    return await page.$(...)
}

Затем вызвал это внутри первого описания beforeEach().Это решило проблему, очень странный дизайн, который мокко будет называть верхним, а затем нижним, перед вызовом верхнего beforeEach ...

...