chuva-inc / exercicios-2024

14 stars 336 forks source link

Erro no PHPUnit durante testes automatizados GaloScrapper #42

Closed gabrieutm closed 6 months ago

gabrieutm commented 6 months ago

Olá, espero que estejam bem! :)

Inicialmente, escolhi o exercício GaloScrapper e modifiquei os arquivos na pasta "src" (Scrapper.php e Main.php) de acordo com minha abordagem e lógica de programação.

image

Consegui elaborar um código que produz um arquivo CSV com as colunas e dados corretos.

Entretanto, ao executar os testes automatizados no GitHub Actions, deparei-me com um erro no PHPUnit, indicando: "Failed asserting that null matches expected 123".

image

Esta informação '123' da imagem pode ser encontrada em tests/Unit/WebScrapping/Entity/PaperTest.php.

image

Ao revisitar meus passos, notei que os arquivos na pasta "src" do repositório de origem possuem um código que acredito ser um "exemplo", e interpretei eles como uma referência flexível para modificações. Agora, surge a dúvida se deveria ter mantido esse código intacto OU se era esperado que eu o modificasse de acordo com minha própria lógica, considerando que os requisitos dos testes automatizados sugerem a busca de uma informação que não está presente na página HTML (origin.html) alvo do web scraping (como pode ser visto na imagem acima).

Assim, gostaria de esclarecer se:

  1. É aceitável aplicar nossa própria lógica na resolução do exercício? (mesmo ele não passando no PHPUnit, devido a falta de uma informação inexistente no arquivo origin.html)

OU

  1. É preferível utilizar a lógica proposta por vocês que pode ser vista nos arquivos do repositório de origem (Scrapper.php e Main.php) como uma base para estender e adaptar a solução proposta? (visto que sem tal lógica, o teste do PHPUnit não passa com a lógica adotada por mim anteriormente)

Se minha interpretação estiver equivocada, ficarei grato por qualquer orientação adicional ou esclarecimento que possam fornecer.

Agradeço a atenção!

gabrieutm commented 6 months ago

Olá!

Gostaria de informar que identifiquei uma discrepância em um dos arquivos originais do repositório durante o processo de revisão e teste dos exercícios.

Ao analisar o arquivo src\WebScrapping\Entity\Paper.php do seu repositório de origem, observei que a função construtora estava incompleta, como exemplificado e comprovado abaixo:

image

Acredito que essa incompletude tenha causado o "erro 123" na etapa do PHPUnit, conforme reportado anteriormente. Para corrigir esse problema, adicionei as atribuições necessárias dentro do construtor, conforme demonstrado abaixo:

public function __construct($id, $title, $type, $authors = []) { $this->id = $id; $this->title = $title; $this->type = $type; $this->authors = $authors; }

Essa correção permitiu o teste automatizado avançasse evitando o "erro 123".

Sugiro que, para evitar que futuros candidatos enfrentem o mesmo problema, esse ajuste seja aplicado ao arquivo original no repositório de vocês. :)