Aún no tienes acceso a esta clase

Crea una cuenta y continúa viendo este curso

Práctica: implementación de objetos usando TDD

20/25
Recursos

Aportes 7

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

Con PHP podemos usar la función str_contains para verificar que un string contenga cierto string, SOLO FUNCIONA EN PHP 8, para versiones anteriores se usa str_pos.
.
No entendí muy bien el reto y en los archivos de la clase no está la solución, pero lo que yo hice fue que la clase Review implementa un arreglo asociativo (mapa) como contenido, y ese arreglo contiene el título, el autor y otro arreglo de productos.
.
Mi test lo que hace es verificar que el “product” que haya sido pasado a través de setProduct se encuentre dentro de mi contenido (getContent)
.
Aquí el enlace del commit con la solución de este reto en PHP:
.
https://github.com/RetaxMaster/arquitectura-backend/tree/57ab9cefd69e195b9485fc99292acaee6972f24f
.
Y también dejo el archivo de mi test (el resto del código está en mi repositorio):

public function test_review_content_match_with_product() {

        // setup
        $cameraProduct = new Camera();
        $cameraProduct->setName("Canon 60D");
        $cameraProduct->setType("FullFrame");
        $cameraProduct->setCropFactor(1);

        $review = new Review();
        $review->setTitle("Titulo del review");
        $review->setAuthor("Un autor");
        $review->setProduct($cameraProduct);

        // exec
        $content = $review->getContent();

        // assert
        $this->assertTrue(in_array($cameraProduct, $content["products"]), "Should match content with the product.");

    }

Tener tests para cada una de las reglas de negocio, asi se asegura que se cumple con todos los requerimientos y ademas en caso de aplicar cambios garantizamos que siga funcionando correctamente

Para los que utilizaron C#. Soy yo o las interfaces no sirvieron de nada pues no se utilizaron ni en las clases ni el los tests. ¿Alguien tiene algún comentario al respecto?

No entendí para qué se crea la interfáz si desde un principio se puede generar como clase.

Me perdi bastante en esa clase creo que no esta bien colocada en la escuela de desarrollo, ya que orienta mucho a los metodos del lenguaje en si , haciendo dificil seguirlo en otro lenguaje sin tenerlo bien dominado

Se le dañó la primera prueba al cambiar el método de GetContent en Product, por NotImplementedException para sobreescribirlo en la clase Product debe dejarlo como virtual y en la clase Camera ponerle el override

Muchas gracia Jorge solo compre la membresía de Platzi por este cuso saludos!