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]为真的主要内容,如果未能解决你的问题,请参考以下文章