Estoy escribiendo una prueba unitaria para un método que utiliza PHPUnit. El método que estoy probando hace una llamada al mismo método en el mismo objeto 3 veces pero con diferentes conjuntos de argumentos. Mi pregunta es similar a las preguntas here y herePHPUnit: ¿cómo me burlo de múltiples llamadas a métodos con múltiples argumentos?
Las preguntas formuladas en las otras publicaciones tienen que ver con los métodos de burla que solo tienen un argumento.
Sin embargo, mi método tiene varios argumentos y necesito algo como esto:
$mock->expects($this->exactly(3))
->method('MyMockedMethod')
->with($this->logicalOr($this->equalTo($arg1, $arg2, arg3....argNb),
$this->equalTo($arg1b, $arg2b, arg3b....argNb),
$this->equalTo($arg1c, $arg2c, arg3c....argNc)
))
Este código no funciona porque equalTo()
valida sólo un argumento. Dándole más de un argumento se emite una excepción:
Argumento # 2 de PHPUnit_Framework_Constraint_IsEqual :: __ construct() debe ser un valor numérico
¿Hay una manera de hacer un logicalOr
burlarse de un método con más de un argumento?
Gracias de antemano.
No ha formulado una pregunta (con palabras reales). Además, no ha explicado por qué el código que agregó específicamente no funciona para usted. Eso puede sonar redundante, pero esa información ayudará a que su pregunta sea más clara y más fácil de dar una respuesta. No podemos mirar dentro de tu cerebro. – hakre
@Thomas: Vine aquí para hacer esta pregunta * exacta *, así que actualicé y voté como tuya, espero que no te importe. (Y ahora jugamos el juego de espera ...) –
@drHannibalLecter gracias – Thomas