Personalmente, siempre he puesto las pruebas unitarias en un proyecto separado simplemente porque así es como parece que MSTest está configurado. Pero estoy leyendo Refactoring: Mejorando el Diseño del Código Existente por Martin Fowler y él parece estar abogando no solo por ponerlos en el mismo proyecto, sino también por ponerlos en la misma clase que el método que están probando.¿Cuáles son las ventajas del código de autoevaluación frente a las pruebas separadas?
Realmente, estoy teniendo problemas para pensar en la forma en que esto es diferente de tener las pruebas en un área separada del código en sí que no sean diferencias filosóficas (¿la documentación de las pruebas o el desorden?).
¿Existen razones claras para elegir una sobre otra? ¿O es principalmente una diferencia filosófica?
ACTUALIZACIÓN: No estoy necesariamente convencido de una u otra manera, pero al menos tengo una idea de cuáles son los argumentos. Ojalá pudiera seleccionar la respuesta de todos, pero tuve que seleccionar solo uno.