Estoy escribiendo pruebas unitarias JUnit para mis clases. ¿Es mejor tener una clase separada para cada método, o tener solo una clase de prueba para cada clase
Estoy escribiendo pruebas unitarias JUnit para mis clases. ¿Es mejor tener una clase separada para cada método, o tener solo una clase de prueba para cada clase
Trabajo para una gran empresa y soy responsable de una gran aplicación de Java con miles de pruebas junit. Desde que me mudé a este rol, ha habido 200-300 pruebas rotas (probablemente rotas por años). Las pruebas son antiguas y frágiles y son un desastre de dependencias de espagueti que...
Hace algún tiempo leí, en una respuesta de desbordamiento de pila que no puedo encontrar, una oración que explicaba que debería probar las API públicas, y el autor dijo que debería probar las interfaces. El autor también explicó que si la implementación de un método cambiara, no debería necesitar...
Para corregir un error en una aplicación, modifiqué un método llamado postLoginagregando una llamada a un método existente llamado getShoppingCart. Código protected void postLogin() { getShoppingCart(); } Sin embargo, no estoy seguro de cuál es la mejor manera de escribir una prueba unitaria...
Heredé un juego educativo basado en la web. Durante el año pasado trabajé para estabilizar el código y agregar nuevas características. La mayor parte de la lógica está en el front-end, por lo que las pruebas unitarias de back-end, aunque útiles, cubren un pequeño porcentaje del código. El juego ha...
Tengo un montón de clases que se ocupan de la validación de valores. Por ejemplo, una RangeValidatorclase verifica si un valor está dentro del rango especificado. Cada clase de validador contiene dos métodos: is_valid(value)que devuelve Trueo Falsedepende del valor, y ensure_valid(value)que busca...
En TDD hay una sintaxis de Arrange Act Assert (AAA): [Test] public void Test_ReturnItemForRefund_ReturnsStockOfBlackSweatersAsTwo_WhenOneInStockAndOneIsReturned() { //Arrange ShopStock shopStock = new ShopStock(); Item blackSweater = new Item("ID: 25"); shopStock.AddStock(blackSweater); int...
En un proyecto actual, los poderes que desean tener incorporadas las pruebas unitarias en nuestro ciclo de desarrollo para evitar la cantidad constante de errores que parecen filtrarse en nuestro código. El problema es que el código de espagueti es 95% por ciento de procedimiento, con el que nunca...
Comencemos con un ejemplo. Digamos que tengo un método llamado exportque depende en gran medida del esquema DB. Y por "depende en gran medida" quiero decir que sé que agregar una nueva columna a una tabla determinada a menudo (muy a menudo) conduce al exportcambio de método correspondiente (por lo...
Desde el punto de vista del valor, veo dos grupos de pruebas unitarias en mi práctica: Pruebas que prueban alguna lógica no trivial. Escribirlos (antes o después de la implementación) revela algunos problemas / errores potenciales y ayuda a tener confianza en caso de que la lógica cambie en el...
Estoy haciendo pruebas unitarias y en una de mis clases necesito enviar un correo desde uno de los métodos, así que usando la inyección del constructor, inyecto una instancia de Zend_Mailclase que está en el marco Zend. Ahora, algunas personas argumentan que si una biblioteca es lo suficientemente...
¿Qué haces cuando escribes una prueba y llegas al punto en que necesitas pasar la prueba y te das cuenta de que necesitas una pieza adicional de funcionalidad que debería separarse en su propia función? Esa nueva función también necesita ser probada, pero el ciclo TDD dice: Hacer que una prueba...
Entonces, tengo un módulo de autenticación que escribí hace algún tiempo. Ahora veo los errores de mi camino y escribo pruebas unitarias para ello. Mientras escribo las pruebas unitarias, me resulta difícil encontrar buenos nombres y buenas áreas para probar. Por ejemplo, tengo cosas...
Escribí esta clase que hace algunas cosas (tal vez esto es una violación del Principio de Responsabilidad Única). Ahora me doy cuenta de que otra parte del proyecto necesita una parte de esa lógica y la forma en que la expondré es extraer una clase de mi Sistema bajo prueba original. Anticipo...
Estoy trabajando en un proyecto donde las llamadas internas de clase son habituales, pero los resultados son muchas veces valores simples. Ejemplo ( código no real ): public boolean findError(Set<Thing1> set1, Set<Thing2> set2) { if (!checkFirstCondition(set1, set2)) { return false;...
Así que tengo el siguiente código en uso en todo mi sistema. Actualmente estamos escribiendo pruebas unitarias retrospectivamente (mejor tarde que nunca fue mi argumento), pero no veo cómo esto sería comprobable. public function validate($value, Constraint $constraint) { $searchEntity =...
Tengo un problema conceptual en este momento y no puedo encontrar ninguna información sobre las diferencias entre Test (UnitTest, etc.) vs Spec (Rspec, etc.). Hasta donde yo sé, las especificaciones están en las pruebas de integración y la prueba está en UnitTest, pero eso es todo. ¿Puedes...
Al escribir pruebas, ¿por qué alguien querría usar una base de datos en memoria en lugar de simplemente burlarse de los datos? Pude ver que las bases de datos en memoria podrían ser beneficiosas para probar los repositorios de uno. Pero si se utiliza un marco (como Spring Data), probar los...
Cada vez que escribo pruebas unitarias, siempre he intentado tener una sola afirmación por prueba para facilitar la depuración cuando las pruebas fallan. Sin embargo, a medida que sigo esta regla, siento que estoy copiando constantemente el mismo código en cada prueba y al tener más pruebas, es más...
Tengo una clase que se refactoriza en 1 clase principal y 2 clases más pequeñas. Las clases principales usan la base de datos (como hacen muchas de mis clases) y envían un correo electrónico. Entonces, la clase principal tiene un IPersonRepositoryy un IEmailRepositoryinyectado que a su vez envía a...