Estoy dando mis primeros pasos en Test Driven Development con Visual Studio. Tengo algunas preguntas sobre cómo implementar clases genéricas con VS 2010.Visual Studio 2010 y Test Driven Development
Primero, supongamos que deseo implementar mi propia versión de una lista de arreglos. que empezar por crear la siguiente prueba (estoy usando en este caso MSTest):
[TestMethod]
public void Add_10_Items_Remove_10_Items_Check_Size_Is_Zero() {
var myArrayList = new MyArrayList<int>();
for (int i = 0; i < 10; ++i) {
myArrayList.Add(i);
}
for (int i = 0; i < 10; ++i) {
myArrayList.RemoveAt(0); //should this mean RemoveAt(int) or RemoveAt(T)?
//VS doesn't know. Any work arounds?
}
int expected = 0;
int actual = myArrayList.Size;
Assert.AreEqual(expected, actual);
}
estoy usando VS 2010 capacidad de golpear
ctrl +.
y lo implementan clases/métodos sobre la marcha.
- He estado teniendo algunos problemas al implementar clases genéricas. Por ejemplo, cuando defino un método
.Add(10)
, VS no sabe si pretendo un método genérico (ya que la clase es genérica) o un métodoAdd(int number)
. ¿Hay alguna forma de diferenciar esto? - Lo mismo puede ocurrir con los tipos de devolución. Supongamos que estoy implementando una pila
MyStack
y quiero probar si después de presionar y elemento y abrirlo, la pila todavía está vacía. Todos sabemos que pop debería devolver algo, pero por lo general, el código de esta prueba no debería importarle. Visual Studio pensaría entonces que pop es un método nulo, que de hecho no es lo que uno querría. Como lidiar con esto? Para cada método, ¿debo comenzar haciendo pruebas que sean "muy específicas", como es obvio, el método debería devolver algo para que no tenga este tipo de ambigüedad? Incluso si no usa el resultado, ¿debería tener algo comoint popValue = myStack.Pop()
? - ¿Cómo debo hacer las pruebas a las clases genéricas? ¿Solo prueba con un tipo genérico de tipo? He estado usando
int
s, ya que son fáciles de usar, pero ¿debo probar también con diferentes tipos de objetos? ¿Cómo usualmente te acercas a esto? - Veo que hay una herramienta popular llamada TestDriven para .NET. Con el lanzamiento de VS 2010, ¿sigue siendo útil, o muchas de sus características ahora son parte de VS 2010, dejándolo inútil?
- Cada vez que defino una nueva propiedad en mi código de prueba, y le pido a VS que me genere ese trozo de método, genera un getter y un setter. Si tengo algo como
int val = MyClass.MyProperty
me gustaría entender que (al menos todavía) solo quiero definir un getter.
Gracias
Para # 4, ¿te refieres a ejecutar pruebas desde el interior de Visual Studio, o ejecutar pruebas en general? – R0MANARMY
Inside Visual Studio. –
Iv tiene 5 preguntas discretas, ¿no les facilitaría la vida a todos publicar cada una como una pregunta separada? –