Как проверить функциональность File-Upload в Cypress? - PullRequest
0 голосов
/ 26 февраля 2019

Я сейчас глубоко погружаюсь в Cypress и пишу тесты e2e для приложения.Кажется, я столкнулся с проблемой, когда дело доходит до тестирования функциональности загрузки файлов.Из-за моего статуса новичка в качестве инженера QA и отсутствия интернет-трафика по этой конкретной проблеме я зашел в тупик.Я наткнулся на Cypres.Blob в Документах.К сожалению, не так много задокументировано, и я не смог применить примеры к тому, что мне нужно выучить.

description ('Тест загрузки файла', () => {

it('should upload a file', () => {
    let testfile = cy.fixture('../fixtures/cypresstest.txt')
    cy.get('input[type=file]').then(($input) => {
    return Cypress.Blob.base64StringToBlob(testfile, 'file/txt')
        .then((blob) => {
        $input.fileupload('add', { files: blob })
        })
    })
})

});

Ответы [ 2 ]

0 голосов
/ 10 апреля 2019

Я тестирую наш сервис загрузки файлов следующим образом:

Cypress.Commands.add('uploadFile', (fileNamePath, fileName, fileType = ' ', selector) => {
cy.get(selector).then(subject => {
    cy.fixture(fileNamePath, 'base64')
        .then(Cypress.Blob.base64StringToBlob)
        .then(blob => {
            const el = subject[0]
            const testFile = new File([blob], fileName, {
                type: fileType
            })
            const dataTransfer = new DataTransfer()
            dataTransfer.items.add(testFile)
            el.files = dataTransfer.files
        })
})

})

Затем в spec-файле.нажмите кнопку загрузки и подождите, пока файл загрузится:

cy.server().route('POST', api-upload-url).as('loadUp')
        cy.uploadFile('./pathToFile/' + fileName, fileName, fileType, fileInput);
        cy.get('.btn-upload.mat-raised-button.mat-primary').click()
        cy.wait('@loadUp').then((response) => {
            expect(response.method).to.eq('POST')
            expect(response.status).to.eq(200)
            expect(response.response.body.status).to.eq('OK')
        })

Также есть проверка желаемых ответов.

Это не супер фантазия и оптимизированный.Но это работает в 3.1.5 и 3.2.0.Он работает, используя электрон 59 как с головой, так и без головы

0 голосов
/ 06 марта 2019

Мне стало известно, что Cypress 3.1.5 пока не поддерживает тестирование загрузки файлов.

...