排毒(wix):为整个测试文件定义元素

时间:2019-09-24 16:09:50

标签: react-native jestjs element e2e-testing detox

我一直在努力解决这一问题,但我似乎无法破解。

使用Detox(与Jest一起)来测试React Native应用程序(在Android上)。

我的测试文件看起来像这样...

describe('The screen:', () => {
  beforeEach(async () => {
    await waitFor(element(by.id('comp.screen.tandc')))
      .toExist()
      .withTimeout(5000)
  })

  it("'I AGREE' button should be disabled and do nothing.", async () => {
    await expect(
      element(by.id('comp.button'))
    ).toExist()

    await element(by.id('comp.button')).tap()

    await expect(element(by.id('comp.screen.tandc'))).toExist()
  })

效果很好,测试通过了。

但是,我想继续在describe套件中编写将使用相同元素的测试。我不想在代码中重复定义element(by.id('blah.blah.blah'))的过程,而是想在文件中一次定义这些by.id()的部分并重用它们。

喜欢这个...

const screen = by.id('comp.screen.tandc')
const button = by.id('comp.button')
describe('The screen:', () => {
  beforeEach(async () => {
    await waitFor(element(screen)))
      .toExist()
      .withTimeout(5000)
  })

  it("'I AGREE' button should be disabled and do nothing.", async () => {
    await expect(
      element(button
    ).toExist()

    await element(button).tap()

    await expect(element(screen)).toExist()
  })

这会导致错误:

  

ReferenceError:未定义by

这样定义const确实可以,但是仅在const方法中定义了it()时才有效。因此,我只能将它们用于一项it()测试,而不能用于整个套件。

任何想法我该怎么做?

0 个答案:

没有答案