Вы получаете литерал, потому что в форме cy.request(options)
options является простым JS объектом и, к сожалению, Cypress не анализирует его для интерпретации псевдонима.
Форма запроса cy.request(method, url, body)
, вероятно, разрешает псевдоним для параметра body, поскольку cy.route()
разрешает его ref: Доступ к данным прибора
например, следующее должно быть допустимым, но не позволяет устанавливать заголовки
cy.fixture('test_create').as('create_test')
cy.request('POST', 'http://localhost:8080/widgets', '@create_test');
Итак, вы можете использовать then()
cy.fixture('test_create').then(myFixture => {
cy.request({
method: 'POST',
url: 'http://localhost:8080/widgets',
body: myFixture,
headers: {
'Authorization': this.token,
'Content-Type': 'application/json;charset=UTF-8'
}
})
});
или
cy.fixture('test_create').as('create_test');
... // some other code between
cy.get('@create_test').then(myFixture => { // retrieve the fixture from alias
cy.request({
method: 'POST',
url: 'http://localhost:8080/widgets',
body: myFixture,
headers: {
'Authorization': this.token,
'Content-Type': 'application/json;charset=UTF-8'
}
})
})