Size: a a a

2019 November 21

OK

Oleksandr Khotemskyi in JS for testing
artem belikov
Отстрел ног какой то, явное - лучше не явного :)
ну вот сейчас явно и нужно переискивать )
источник

ab

artem belikov in JS for testing
ну и с точки зрения как может поменятся константный объект)?
источник

OK

Oleksandr Khotemskyi in JS for testing
const browser1 = browser
const browser2 = await browser.forkNewDriverInstance().ready

const elem1 = browser1.$(‘div’)
const elem2 = browser2.$(‘div’)

await browser1.restart()
await browser2.restart()


elem1 = browser1.$(‘div’)
elem2 = browser2.$('div’)

elem2.click() //
OK!
источник

m

mkots in JS for testing
Nikita
Не, думаю там возможно нет проблемы с рестартом
cy.reload() и норм
источник

ab

artem belikov in JS for testing
Oleksandr Khotemskyi
const browser1 = browser
const browser2 = await browser.forkNewDriverInstance().ready

const elem1 = browser1.$(‘div’)
const elem2 = browser2.$(‘div’)

await browser1.restart()
await browser2.restart()


elem1 = browser1.$(‘div’)
elem2 = browser2.$('div’)

elem2.click() //
OK!
1) Нужно уменьшить время жизни elemX.
2) нельзя присваивать elemX новые значения.
источник

OK

Oleksandr Khotemskyi in JS for testing
artem belikov
1) Нужно уменьшить время жизни elemX.
2) нельзя присваивать elemX новые значения.
время жизни elemX это как?
источник

ab

artem belikov in JS for testing
Я ХЗ как в JS, но скорее всего также как и в ++, просто анонимный блок
{
}
источник

OK

Oleksandr Khotemskyi in JS for testing
artem belikov
Я ХЗ как в JS, но скорее всего также как и в ++, просто анонимный блок
{
}
у меня песочный пример, в реальности твои поиски будут в pageObject
источник

OK

Oleksandr Khotemskyi in JS for testing
вот ближе к реальному миру -

const home = null;

describe(’Some feature’, function () {
beforeEach(async function () {
    await browser.restart()
    home = new HomePage();
})

it(‘should work’, async function () {
    await home.open()
    await home.logo.click()
})

})


class HomePage {

constructor() {
   this.logo = $(‘img.logo’)
}

async open() {
    browser.get(‘/‘)
}
}
источник

OK

Oleksandr Khotemskyi in JS for testing
Oleksandr Khotemskyi
вот ближе к реальному миру -

const home = null;

describe(’Some feature’, function () {
beforeEach(async function () {
    await browser.restart()
    home = new HomePage();
})

it(‘should work’, async function () {
    await home.open()
    await home.logo.click()
})

})


class HomePage {

constructor() {
   this.logo = $(‘img.logo’)
}

async open() {
    browser.get(‘/‘)
}
}
так будет валидно переназначатся sessionID для logo элемента после каждого restart
источник

m

mkots in JS for testing
Ухх, жесть какая
источник

OK

Oleksandr Khotemskyi in JS for testing
mkots
Ухх, жесть какая
да, ну или просто -

describe(’Some feature’, function () {
beforeEach(async function () {
    await browser.restart()
})

it(‘should work’, async function () {

           const home = new HomePage()
    await home.open()
    await home.logo.click()
})
})
источник

m

mkots in JS for testing
Я вообще жесткой наркоманией занимаюсь. У меня в ПО вообще нет полей. Только методы)
источник

ab

artem belikov in JS for testing
Зачем там ООП)?
источник

ab

artem belikov in JS for testing
Деструкторов нет, RAII не запилить)
источник

m

mkots in JS for testing
Даешь ФП в тестах!
источник

ab

artem belikov in JS for testing
mkots
Даешь ФП в тестах!
Куда более разумно, чем ООП.
источник

ab

artem belikov in JS for testing
Чистые функции спасут мир
источник

m

mkots in JS for testing
artem belikov
Деструкторов нет, RAII не запилить)
Зачем нам деструкторы. у нас gc работает
источник

m

mkots in JS for testing
иногда
источник