Como fazer com que strings multilinhas em Exemplos no Esboço de Cenário em testes de pepino funcionem?

StackOverflow https://stackoverflow.com/questions/5056976

  •  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

Foi útil?

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?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top