2012-03-23 9 views
5

Supongamos que se inicia con un método autogenerado-Cómo refactorizar el código de prueba junto con el código de producción?

public void setKey(Key key) { 
    this.key = key; 
} 

y escribir una prueba para que

@Test 
public void testSetKey() 

luego 3 meses a partir de ahora decide que un nombre más apropiado para el método sería changeKeyTo. Usted refactorizar el código de producción y termina con:

public void changeKeyTo(Key key) { 
    this.key = key; 
} 

la vida es buena, sin embargo, el nombre de la prueba se mantuvo sin cambios

@Test 
public void testSetKey() 

, ¿cómo lidiar con algo como esto? ¿Puede refactorizar el código de prueba automáticamente con su código de producción? ¿El eclipse lo permite?

+1

Posible duplicado de http://stackoverflow.com/questions/3317789/is-it-possible-to-automaticly-rename-the-unit -test-class-when-renomming-the-class – nobeh

+2

@BehroozNobakht, no es un duplicado: se trata de cambiar el nombre de un * método * que también se llama mediante pruebas. Esto es absolutamente necesario; de lo contrario, su código de prueba ya no se compila. Renombrar una prueba * clase * de forma similar a la clase probada es una función agradable de tener, cuya ausencia no causa ningún problema inmediato. Las pruebas de su unidad todavía se están compilando y funcionando perfectamente sin él, solo que es más difícil para usted ver la dependencia lógica entre la clase de prueba y la clase probada. –

+1

Es una pregunta muy buena y reflexiva sobre la profesión, y en un mundo ideal podría sugerir el lugar de los programadores. Una de las cosas en las que hay que pensar es dejar intactos los métodos autogenerados, ya que es agradable tenerlos actualizables con la generación de clases, y hacer un wrapper para eso si quieres "un nombre más apropiado". Pero ese es un punto estrecho; Creo que la pregunta merece una discusión más amplia. – hardmath

Respuesta

1

Eclipse no habría resolver esto para cambiar: sólo cambia las referencias de la método utilizado en otras clases o en la misma clase .
Si realmente quiere hacer este trabajo funcionalidad, que podría extenderse Eclipse 's refactorización API como lo hice para mi proyecto y darle esta nueva funcionalidad.
Si desea tener alguna referencia al respecto, pregúnteme ;-)

+1

Cuéntanos más. Creo que muchas personas se beneficiarían de cómo esto se puede resolver – JAM

+1

Mire aquí y todas sus preguntas serán resueltas: http://stackoverflow.com/questions/9129689/is-here-any-eclipse-refactoring-api-that -i-can-call-programmatically – GingerHead

0

La mayoría de los IDEs con soporte de refactorización automática también cambiarán el nombre de las llamadas a su método del código de prueba (si mantiene el código de prueba en el mismo proyecto para que el IDE pueda verlo). IIRC Eclipse también pudo hacerlo, la última vez que lo usé. IntelliJ, que estoy usando ahora, lo hace.

Cuestiones relacionadas