¿Es esto posible? Lo intenté con EasyMock.expectLastCall().times(0);
pero EasyMock se queja de que los tiempos deben ser> = 1Prueba de que el método vacío no se llamó con EasyMock
Respuesta
me las arreglé para llegar a una solución:
expectLastCall().andAnswer(new IAnswer() {
public Object answer() {
Assert.assertFail();
return null;
}
});
Me parece un error. La clase interna Range
no permite establecer un máximo inferior a 1.
¿No podría burlarse de ese método y simplemente llamar al Assert.fail()
?
sí, lo hice de esa manera eventualmente, ver mi respuesta – nkr1pt
Si espera que su método no se llamará a continuación, simplemente no grabarlo. Pero estoy de acuerdo en que no funcionará con un buen simulacro.
con EasyMock 3.0, es necesario agregar un .anyTimes() en el expectLastCall o la prueba fallará:
Expectation failure on verify: myMethod(): expected: 1, actual: 0`
basado en el ejemplo nkr1pt:
expectLastCall().andAnswer(new IAnswer() {
public Object answer() {
Assert.assertFail();
return null;
}
}).anyTimes();
El hecho de que algún método no se llama está controlado por Mock
o StrictMock
. Lanzarán una excepción cuando se llame a ese método no registrado. Este problema ocurre solo cuando se usa NiceMock
s, donde se devuelven los valores predeterminados al llamar para métodos no grabados.
Así que una solución puede ser para no usar NiceMock
s.
Estoy totalmente en desacuerdo con la conclusión. Quizás, en este caso, el buen simulacro no es la mejor opción. Pero si quiere asegurarse de que no se llamará a un método, de hecho, esto es lo único que quiere probar, es mejor enfatizar esto con un método burlado que falla con un mensaje apropiado. – qben
Es un buen argumento. Quería señalar este, ya que había tropezado con por qué no puedo especificar 'times (0)'. Y solo después me di cuenta de que ese tipo de contradicción con la idea de una buena burla, y no una buena burla, no permite que se ejecuten métodos no registrados. Lanzar una excepción afirmar como la respuesta parecía más como una solución para mí y que 0 las llamadas al método se deben especificar utilizando burlas no agradables. Tal vez soy un poco asertivo en la conclusión. Solo lo corregiré. – Vic
Puede usar .andThrow(new AssertionFailedError()).anyTimes();
- esta es la misma excepción que Assert.fail()
, pero es menos detallada que hacer un Answer
.
Quizás agregar una buena descripción sobre por qué falló la prueba mejora aún más esta solución (que es la mejor de todas aquí). – qben
- 1. EasyMock: prueba ese método en el simulacro no se llama
- 2. Prueba Excepciones de un método con EasyMock
- 3. ¿Cómo se prueba que se llamó un método dentro de una clase bajo prueba?
- 4. Verificación de un método se llamó
- 5. EasyMock: burló objeto se llama método real
- 6. Método didUpdateLocation Nunca se llamó
- 7. ¿Cuándo se llamó el método marcado con @PostConstruct?
- 8. ¿Cómo se prueba un método con el tipo de retorno de vacío?
- 9. EasyMock: suministrando argumentos que no conoce en tiempo de compilación
- 10. Burlando de un método final con PowerMock + EasyMock
- 11. JUnit EasyMock llamada al método inesperado
- 12. Autocableado de granos generados por el método de fábrica EasyMock?
- 13. ¿Cómo puedo afirmar que se llamó a un método en particular usando NUnit?
- 14. Usando easymock, método de llamada repetida llamada
- 15. ¿Cómo probar el método vacío con las herramientas de prueba de Junit?
- 16. Fallas de Visual Studio 2012: ¿cómo verifico que se llamó un método?
- 17. método de vacío Prueba de la unidad que crea un nuevo objeto
- 18. Probando si se llamó a un método protegido
- 19. PictureCallback.onPictureTaken nunca se llamó
- 20. C#: ¿Cómo se prueba el método IEnumerable.GetEnumerator()?
- 21. onActivityResult nunca se llamó
- 22. Obteniendo la instancia que llamó al método en C#
- 23. ¿Cómo saber quién llamó a un método?
- 24. onLocationChanged() nunca se llamó
- 25. ¿Cómo se prueba un método de acción que devuelve JsonResult?
- 26. Actividad OnDestroy nunca se llamó?
- 27. ¿Cómo obtengo el nombre del método de prueba que se ejecutó en un método de prueba y derribo?
- 28. Cómo probar métodos vacíos usando EasyMock
- 29. Easymock: ¿importa el orden de las capturas?
- 30. Establecer expectativas negativas en EasyMock
Consulte http://stackoverflow.com/questions/859031/easymock-void-methods, aunque no estoy seguro de que sea una tontería. – philant
No es un duplicado. – hiergiltdiestfu