C. PHPUnit

Versión para imprimir.

1. Hazlo funcionar

2. Salida de las pruebas realizadas

Esta salida muestra algunos fallos para que te des cuenta como se ven. En la práctica, todas la pruebas deben aprobarse.


  PHPUnit 10.5.5 by Sebastian Bergmann and contributors.

  Runtime:       PHP 8.2.7
  
  ..F                                                                 3 / 3 (100%)
  
  Time: 00:00.091, Memory: 8.00 MB
  
  There was 1 failure:
  
  1) RecomiendaTest::testReg2
  Probando reg 2
  Failed asserting that two strings are equal.
  --- Expected
  +++ Actual
  @@ @@
  -'Daddy Yankee.'
  +'Bad Bunny.'
  
  /home/runner/phpunit/tests/RecomiendaTest.php:19

3. Archivos

Haz clic en los triángulos para expandir las carpetas

4. Carpeta « src »

Versión para imprimir.

A. src / recomienda.php

1<?php
2
3function recomienda(string $genero): string
4{
5 if ($genero === "pop") {
6 return "Dua Lipa.";
7 } elseif ($genero === "reg") {
8 return "Bad Bunny.";
9 } else {
10 return "De eso no conozco";
11 }
12}
13

5. Carpeta « tests »

Versión para imprimir.

A. tests / RecomiendaTest.php

1<?php
2
3use PHPUnit\Framework\TestCase;
4
5require_once __DIR__ . "/../src/recomienda.php";
6
7final class RecomiendaTest extends TestCase
8{
9 public function testPop()
10 {
11 $this->assertEquals("Dua Lipa.", recomienda("pop"), "Probando pop");
12 }
13 public function testReg()
14 {
15 $this->assertEquals("Bad Bunny.", recomienda("reg"), "Probando reg");
16 }
17 public function testReg2()
18 {
19 $this->assertEquals("Daddy Yankee.", recomienda("reg"), "Probando reg 2");
20 }
21}
22

6. composer.json

1{
2 "require-dev": {
3 "phpunit/phpunit": "^10"
4 }
5}

7. composer.lock

1-- No se muestra eñ contenido de este archivo --

8. Carpeta « vendor »

Versión para imprimir.

A. vendor / -- No se muestra el contenido de esta carpeta --

1

9. .replit

1run = ["./vendor/bin/phpunit", "tests"]
2
3entrypoint = "tests/RecomiendaTest.php"
4
5[nix]
6channel = "stable-23_05"

10. replit.nix

1{ pkgs }: {
2 deps = [
3 pkgs.php82
4 pkgs.php82Packages.composer
5 ];
6}