Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Pest Tests & Desafio #1

Open
wants to merge 12 commits into
base: pest
Choose a base branch
from

Conversation

dansysanalyst
Copy link

@dansysanalyst dansysanalyst commented Feb 26, 2022

📺 PR discutida no vídeo: https://www.youtube.com/watch?v=CpWWR8Ns9_Y

↘️ TL;DR

  • Atalho composer pestify para rodar apenas testes em Pest;
  • phpunit.xml está usando SQLite Memory;
  • Testes em Pest refatorados buscando usar expectations e funcionalidades do Pest;
  • Teste com only() em Tests\Feature\Pest\ShortUrl\MiscTest deve ser //comentado na live.
  • UrlCode::generate propõe uma solução para o desafio.

Oi Rafael,

Esse PR sugere algumas alterações nos testes escritos com Pest de modo a demonstrar um pouco da sintaxe e recursos deste framework de testes.

O código destes testes foi pensado de acordo com tal objetivo e pode não representar a solução mais indicada no dia a dia ou em um projeto real.

Eu sigo a ideia de que testes também servem como documentação e eu tentei explorar uma das coisas que eu mais gosto no Pest, escrever código muito próximo de linguagem natural.

Modificações realizadas:

  • README com link para o Youtube.
  • Adicionei composer pestify para rodar os testes em tests/Feature/Pest/. Este atalho permitirá vermos apenas os testes em Pest sintaxe, facilitando a didática durante a Live.
  • Embora o Pest rode testes em formato PHPUnit, certas funcionalidades, por exemplo, como o ->only() só afetam testes escritos usando as funções test() ou it(). O atalho também permite demonstrar estas funções.
  • Modifiquei o phpunit.xml para usar SQLite Memory para poder chamar o requiresMysql(), um Custom Helper que pula testes que dependem do banco ser MySQL.
  • Renomeei o CodeGenerator para UrlCode seguindo a ideia de substântivo para o Action e verbo descritivo para a ação a ser realizada (UrlCode::generate()).
  • O ActionUrlCode verifica se o código já existe, não permitindo duplicidade.
  • Estendi as expectations para ter um exemplo de uso desta funcionalidade. Ex: ->toBeUnprocessableEntity().
  • Adicionei helpers para Factories e get/post, promovendo o conceito de Pest is Built for Humans, apresentando um código que pode ser lido como linguagem natural. Ex: shortUrl()->create();
  • Testes em Pest refatorados buscando usar expectations ao invés de assertions com o intuito de demonstração.

example

Um abraço e obrigado pelo conteúdo de altíssima qualidade,

Daniel

- Just for convenience to demonstrate only Pest syntax tests
- Uses a noun for the Action and a verb (generate) for the action.
- Guarantees code does not repeat.
-
- Make use of UrlCode::generate() Action
- Replaced assertions with expectations
- Promotes the use of Pest Custom Helpers and Custom Expectations for demonstrative purposes.
- Exemplify higher order, skipping, incomplete and running only one test
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant