Como fazer com que strings multilinhas em Exemplos no Esboço de Cenário em testes de pepino funcionem?
-
15-11-2019 - |
Pergunta
Eu gostaria de usar strings multilinhas na seção Exemplos do Esboço do Cenário.Como fazer isso ?
por exemplo
Scenario Outline:
Given something
When `<action>` happens
I should get elaborative `<duuh>`
Examples:
|action|duuh|
|"""
tututuut
"""|"""blablabla m
ultiline"""|
não parece limpo nem funciona
Solução
Eu priorizo o pepino saída, não o pepino entrada, embora o primeiro prêmio seja que ambos sejam bonitos.Portanto, valores de exemplo de múltiplas linhas não fazem sentido para mim, porque eles destroem totalmente a saída do pepino.
Pepino incentiva saída legível para dados multilinha com sequências de documentos.Ele incentiva a saída legível para matrizes de dados com esboços de cenário.Não acho que isso incentive a saída legível de matrizes de dados multilinhas.
Se você pudesse encontrar ótimos exemplos de como seria a saída nesses casos, eles poderiam ser bem recebidos no mercado. Fórum de bolos.
Alternativamente, se tudo o que você está tentando fazer é iterar dados multilinhas em seus recursos do Cucumber, crie nomes mnemônicos para os dados multilinhas, forneça esses mnemônicos no Examples
matriz do seu Scenario Outline
, e trate os mnemônicos como os nomes dos arquivos de fixture que você lê para os dados reais em seu código de colagem.
Outras dicas
O que fiz foi separar as strings longas em arquivos (no meu caso eram pedaços de json) e quando preciso das strings, apenas carrego o arquivo necessário.
Fiz isso no Grails, mas deve ser bem parecido:
Método para ler o arquivo
static String getMockJsonFile(String fileName){
new File("${BOOKING_JSON_FILES_PATH}${fileName}.json").text
}
Arquivo JSON
"collectionSummary": {
"attempts": [
{
"collectionMethod": {
"creditCardCollectionMethod": {
"id": 2,
"collectionMethodType": "CREDITCARD",
"creditCardType": {
"code": "CA",
"name": "Master Card Credit"
}
}
},
"billingCurrency": "EUR"
}
],
"creationDate": "2017-05-30 14:46:19",
"currency": "EUR",
"collectedAmount": 9.1
}
Se você definir aspas triplas """ no arquivo, o resultado da string também as terá.
Você já pensou em usar em suas strings para denotar o retorno de carro?