0

現在、Mocha、Chai、および Chai-as-Promised で Webdriver.io を使用していますが、CSS プロパティを検証しようとすると、検証する約束を得るのに苦労しています。

コード:

'use strict';
var chai = require('chai'),
    chaiAsPromised = require('chai-as-promised');

chai.use(chaiAsPromised);
chai.should();
chaiAsPromised.transferPromiseness = browser.transferPromiseness;

describe('Buttons', function() {

    var buttonSelector = '.button';

    browser.url('http://localhost/buttons.html');

    it('should have square corners by default', function (done) {
        browser
            .getCssProperty(buttonSelector, 'border-top-left-radius').should.eventually.become('0px')
            .call(done);
    });
});

ただし、次のエラーが表示されます。

デフォルトのボタン: 小さいサイズ 1) デフォルトでは四角い角を持つ必要があります 1 失敗

1) デフォルトのボタン: 小さなサイズはデフォルトで四角い角を持つべきです: Uncaught AssertionError: expected { Object (property, value, ...) } to deep equal '0px' 0 pass (2s) at assertEqual (/node_modules/chai/lib /chai/core/assertions.js:393:19)

  at ctx.(anonymous function) (/node_modules/chai/lib/chai/utils/addMethod.js:40:25)
  at WebdriverIO.<anonymous> (/node_modules/chai-as-promised/lib/chai-as-promised.js:302:26)

  at /node_modules/webdriverio/lib/utils/PromiseHandler.js:85:52
  at process._tickCallback (node.js:419:13)
4

2 に答える 2

1

getCSSProperty は次のようなオブジェクトを返します

{
    property: 'width',
    value: '100px',
    parsed: {
        type: 'number',
        string: '100px',
        unit: 'px',
        value: 100
    }
}

あなたのエラーメッセージは、0pxそれが実際に真であるオブジェクトと等しくないことを示しています。この場合、おそらくコールバックを使用することをお勧めします。「Chai Things」プラグインを使えば可能かもしれません。

于 2015-02-23T23:17:49.183 に答える
0

ドキュメントによると、それは約束を返しませんか?

コールバックを使用する必要があるようです。

編集:わかりました、ドキュメントを誤解している可能性があります。代わりに、プロミスで出力された値が期待どおりではない可能性があります。ドキュメントを確認すると、コールバックが何を生成するかがわかります。したがって、約束と同じになると予想できます。次に、次のようなものを使用できます。

browser.getCssProperty(buttonSelector, 'border-top-left-radius').should.eventually.have.property('value', '0px').call(done);
于 2015-02-22T14:50:31.513 に答える