【问题标题】:Chai assertion doesn't fail using async command?Chai 断言不会使用异步命令失败?
【发布时间】:2019-02-23 16:35:04
【问题描述】:

使用以下异步命令时,我的 Chai 断言似乎没有失败:

async confirmSuccessfulSubmission() {
    try {
        let value = await $("#contact_reply h1").getText()
        if(value)
           return expect(value).to.equal("Thank You for your Message!2"); 
        return null
        } catch(e) {
            console.log(e)
        } 
}

正在向控制台窗口输出异常消息:

[0-0] { AssertionError: expected 'Thank You for your Message!' to equal 'Thank You for your Message!2'
    at ContactUs_Page.confirmSuccessfulSubmission (C:\Users\GBruno\Desktop\webdriverioFramework\pageObjects\ContactUs_Page.js:51:34)
    at <anonymous>
    at process._tickDomainCallback (internal/process/next_tick.js:229:7)
  message: 'expected \'Thank You for your Message!\' to equal \'Thank You for your Message!2\'',
  showDiff: true,
  actual: 'Thank You for your Message!',
  expected: 'Thank You for your Message!2' }

【问题讨论】:

  • 在我看来,您的预期文本 Thank You for your Message!2#contact_reply 元素的内容不同,即 Thank You for your Message!。注意2 末尾的return expect(value).to.equal("Thank You for your Message!2")
  • 感谢 Gustavo Fonseca,但我希望我的测试会因上述代码而失败,但这似乎表明我的测试通过了,但不确定原因:/

标签: javascript node.js selenium webdriver-io


【解决方案1】:

为了让您的测试失败,testrunner(我假设它是 webdriverio)必须收到一个 AssertionError。在您的测试中,chai 将在这一行中抛出错误:

expect(value).to.equal("Thank You for your Message!2");

但你在这里抓住它:

catch(e) {
        console.log(e)
    } 

所以它永远不会到达 testrunner 并且测试不会失败。试试这个代码:

async confirmSuccessfulSubmission() {
try {
    let value = await $("#contact_reply h1").getText()
    expect(value).to.equal("Thank You for your Message!2"); 
    } catch(e) {
        console.log(e)
        throw(e)
    } 
}

或者如果您不需要打印错误:

async confirmSuccessfulSubmission() {
    let value = await $("#contact_reply h1").getText()
    expect(value).to.equal("Thank You for your Message!2"); 
}

【讨论】:

    猜你喜欢
    • 2017-03-04
    • 2017-07-18
    • 1970-01-01
    • 1970-01-01
    • 2020-06-06
    • 2020-06-16
    • 1970-01-01
    • 1970-01-01
    • 2011-09-16
    相关资源
    最近更新 更多