AssertionError:期望[true]为真

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AssertionError:期望[true]为真相关的知识,希望对你有一定的参考价值。

我遇到了奇怪的断言问题,所以即使成功的断言也被标记为失败,如下所示:

this.expect(this.getWidget('contacts').isNamesDisplayed()).to.eventually.be.true.and.notify(next);

在控制台我有:

1个场景(1个通过)4个步骤(4个通过)0m03.618s [17:06:38] E / launcher - 预期[true]为真[17:06:38] E / launcher - AssertionError:expected [true]是真实的

正如你在本案例中看到的那样,尽管断言失败,但测试标记为成功,但是如果在“失败”断言之后还有另一个断言,整个事情将会失败。

我正在使用最后版本的量角器和柴。

答案

似乎this.getWidget('contacts').isNamesDisplayed()返回一个数组值[true]而不是true。您需要更改您的期望声明,如下所示。

this.expect(this.getWidget('contacts').isNamesDisplayed()).to.eql([true]).and.notify(next);

另一答案

接受的答案很棒。接受的回答重申了量角器的抱怨,令人沮丧但非常明确:

...返回数组值[true] ...

显然这是OP的功能isNamesDisplayed的行为。但可能还有其他原因:

在我的情况下,我不小心使用$$,而不是$,我是expect($$('div.to-test').isDisplayed()).toBe(true)$$是一个“Shorthand function for finding arrays of elements by css”。

所以请注意,一个角色$可能是所有生活问题的原因(并解决):expect($('div.to-test').isDisplayed()).toBe(true)

(或者如接受的答案所说,你可以......“改变你的期望”:))

expect($$('div.to-test').isDisplayed()).toBe([true]);

也许对你实际期望重复的事情更有意义,例如<li>中的<ul>列表项目

expect($$('ul.to-test li').isDisplayed()).toBe([true, true, true]);

以上是关于AssertionError:期望[true]为真的主要内容,如果未能解决你的问题,请参考以下文章

assert在Java与groovy中的区别

找不到跟踪的 SourceMap 位置:AssertionError (Karma-Typescript)

为啥`false && true ||真`评估为真?

Py断言elif()

haskell - 指定 # 个条件为真

Chai 断言,无法使用应该/期望来识别属性