Skip to content

Instantly share code, notes, and snippets.

@montogeek
Created May 21, 2015 19:27
Show Gist options
  • Save montogeek/e6e2fcd01e364fd01bb6 to your computer and use it in GitHub Desktop.
Save montogeek/e6e2fcd01e364fd01bb6 to your computer and use it in GitHub Desktop.
Test
el link que muestras no son funcional tests, son "Integration Tests", creo que aun no estamos en el mismo canal en eso.
Recuerda, existen tres tipos de pruebas, "Unit Test", "Integration Test" y "Functional Test"
En los unit tests, testeas una simple unidad y TODAS las dependencias son mocks, stubs, etc. PHPUNIT planito
En el integration tests, testeas una clase con todas sus dependencias inyectadas de forma normal. Solamente se hacen mocks the third party APIs o dependencias FUERA de nuestra app. Codeception o el mismo PHPUNIT sirven para esto, entre otros.
En el functional test, testeas, valga la redundancia, en nivel funcional, usualmente usas frameworks basados en PhantomJS / Selenium o cualquier plataforma que consuma tu aplicacion a nivel funcional como si fuera un usuario.
Lo que tu muestras es integration tests, si tienes un problema con una dependencia que no es una clase que tu escribiste, ahi si puedes usar un Mock. :stuck_out_tongue:
daniel-aranda [9:15 AM]
y creo que no es tu culpa, Codeception se refiere a "functional test" a lo que yo me refiero con "integration test" y ellos se refieren a "functional test" como "acceptance test", no voy a caer en un circulo de tecnisismos, al final lo importante es diferenciar en que nivel de testing nos encontramos
daniel-aranda [9:17 AM]
respecto a tu link, lo que intentas mockear, si hace sentido, pues es una dependencia de terceros, sobre una test que yo considero como integration test
@duilio: siii es que codeception con su "emulador de browser" realmente esta en un termino medio entre ser integration tests y un REAL functional test, ellos con su emulador de PHP que trabaja "casi" como una app real, se sienten seguros de llamar por eso, functional test, pero no es un functional test es un integration test que es casi casi un functional test
daniel-aranda [9:52 AM]
@duilio: unit tests para los controladores no hace sentido, pues es solo mockear, normalmente a los controladores solo les haces integration tests
daniel-aranda [9:53 AM]
@duilio: la unica razon para hacer unit test a un controlador, seria si el controlador tuviera alguna logica de negocio en el, pero eso va en contra de los principios de todo controlador, entonces realmente para esos no tiene caso el unit test, es mejor ir directo al integration test
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment