2009-02-23 13 views
6

Estoy tratando de empezar con Moq y tengo problemas para encontrar los recursos adecuados para hacer lo que necesito.Conjuntos de datos burlones con Moq

Tengo una clase de interfaz de datos que tiene un método Get que devuelve un conjunto de datos a través del procedimiento almacenado. Esta es la forma en que se escribió el código y no puedo cambiarlo en este momento, así que tiene que hacerse de esta manera.

Quiero probar esta clase mediante Mocking the Dataset y devolver datos para no tener que hacer una llamada a la base de datos.

¿Alguien está haciendo esto y, de ser así, dónde es un buen lugar para empezar a hacerlo?

Respuesta

7

No necesita una conexión de base de datos para completar un DataSet. Puede simularlo así:

IDataInterface di = new Mock<IDataInterface>(); 
DataSet mockDataSet = CreateMockDataSet(); 
di.Expect(x => x.Get()).Returns(mockDataSet); 
something.UseDataInterface(di.Object); 

Rellenar un simulador DataSet es bastante doloroso. Si hago esto, generalmente pongo una interfaz de fachada frente al DataSet devuelto, que es más fácil de burlar. O cambio el código para usar una DataTable, que es más fácil de completar.

Como alternativa, utilice una base de datos incrustada, como SQLite o SQL Server CE, para las pruebas de su unidad.

+1

um ... ¿qué hace CreateMockDataSet()? Pensé que esa era la pregunta –

+1

Buen punto. Creo que OP pensó que necesitaban burlarse de la interfaz de 'DataSet', y mi respuesta indica que esto no es necesario. 'CreateMockDataSet()' simplemente crearía un grupo de instancias 'DataTable' y las colocaría en' DataSet' como si hubieran sido devueltas de la base de datos real. –

Cuestiones relacionadas