TestCafe似乎没有使用expect + exists + ok(或notOk)的组合

问题描述 投票:1回答:1

我一直在使用TestCafe测试UI,我发现了一些奇怪的情况。

这是奇怪的情况。

// it's passed because I expected...
.expect(
  Selector('.v-menu__content.menuable__content__active')
    .find('.v-list__tile.v-list__tile--link')
    .withText(label).exists
)
.notOk('check')

// but this is passed too though this should fail
.expect(
  Selector('.v-menu__content.menuable__content__active')
    .find('.v-list__tile.v-list__tile--link')
    .withText(label).exists
)
.ok('check')

在这里,我使用await来解决这个问题。

// it was not passed!!! => Yay!
.expect(
  await Selector('.v-menu__content.menuable__content__active')
    .find('.v-list__tile.v-list__tile--link')
    .withText(label).exists
)
.ok('check')

我找不到GitHub的具体信息,谁能告诉我这是我实际要做的事情?

谢谢

automated-tests e2e-testing web-testing testcafe
1个回答
2
投票

也许你可以像这样重写你的测试:

const labelSelector = 
  Selector('.vmenu__content.menuable__content__active')
    .find('.v-list__tile.v-list__tile--link')
    .withText(label);

await t
  .expect(labelSelector.exists)
  .notOk({timeout: 30000});

await t
  .expect(labelSelector.exists)
  .ok({timeout: 30000}); // should fail

您还可以在TestCafe命令行上设置显式超时:--selector-timeout and --assertion-timeout

© www.soinside.com 2019 - 2024. All rights reserved.