2009-10-28 30 views
12

Genere pruebas unitarias en una clase genérica en VS 2008 y utilizó el tipo GenericParameterHelper en todos los lugares donde se utilizó un tipo genérico. ¿Es este un marcador de posición que debe reemplazarse o tiene algún uso? ¿Cuáles son los usos si hay alguno?¿Qué es GenericParameterHelper y cómo se usa?

He aquí una de las pruebas que generó como un ejemplo:

/// <summary> 
///A test for Count 
///</summary> 
public void CountTestHelper<TKey, TValue>() 
{ 
    ObservableDictionary<TKey, TValue> target = new ObservableDictionary<TKey, TValue>(); // TODO: Initialize to an appropriate value 
    int actual; 
    actual = target.Count; 
    Assert.Inconclusive("Verify the correctness of this test method."); 
} 

[TestMethod()] 
public void CountTest() 
{ 
    CountTestHelper<GenericParameterHelper, GenericParameterHelper>(); 
} 

Respuesta

8

Digamos que usted tiene una clase:

public class Foo<T> 
{ 
    public bool DoSomething() 
    { 
     return false; 
    } 

    public T DoSomethingElse() 
    { 
    // ... 
} 

Ahora que desea probar HacerAlgo. Primero tienes que crear instancias de Foo. No puede hacer:

var foo = new Foo<T>(); 

Tiene que usar un tipo real. Pero T no se usa en el método, entonces es ruido en la prueba. Entonces usted puede hacer:

var foo = new Foo<GenericParameterHelper>(); 

... que representa, más o menos, para "cualquier tipo antiguo".

+1

Debería haber llamado 'AnyType' entonces, o algo así. Mucho más corto: P – Svish

+0

¿Entonces básicamente son un marcador de posición? Bueno saber. –

+0

"Esta clase es un marcador de posición para usar con genéricos. Le ayuda a probar tipos genéricos al permitirle pasar argumentos de tipo no específico". http://msdn.microsoft.com/en-us/library/microsoft.visualstudio.testtools.unittesting.genericparameterhelper.aspx –