我一直在努力解决这一问题,但我似乎无法破解。
使用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()
测试,而不能用于整个套件。
任何想法我该怎么做?