Prueba de clases de LINQ to SQL
-
22-08-2019 - |
Pregunta
¿Cómo se prueba mi unidad de código que tiene LTS DataContext. Me sale error durante la prueba, tengo un montón de DataContexts y añadir manualmente la cadena de conexión es un dolor, alguna sugerencia.
Solución
Bueno, la manera de hacerlo es la siguiente:
Mi capa de datos tiene una interfaz, tal como sigue:
public class MyDataLayer : iMyDataLayer
{
public string GetMyData(parameters)
{
return myQueryValue;
}
}
public interface iMyDataLayer
{
public string GetMyData(parameters);
}
Ahora, en mi constructor para mi base de código principal (lógica de negocio) voy a tener un parámetro para pasar en la interfaz de la capa de datos:
private iMyDataLayer DataLayer;
public class MyBusinessLogic(iMyDataLayer dataLayer)
{
DataLayer = dayaLayer
}
public string GetMyData(parameters)
{
return DataLayer.GetMyData(parameters)
}
Con esto, ahora puedo crear un servicio de datos "falso" en mi proyecto TDD:
public class FakeDataLayer : iMyDataLayer
{
public string GetMyData(parameters)
{
return "Some Default Value or Object";
}
}
Así que ahora cuando corro mi prueba, ahora puedo pasar en mi falso objeto de capa de datos a mi lógica de negocio, de aquí que voy a invocar la lógica falsa y volver resultado predeterminado.
Ahora, otorgado no va a estar trabajando con datos reales aquí. Sin embargo, si los objetos de configuración falsos con datos válidos / inválidos reales, que pueden poner a prueba su lógica de negocio de esta manera sin tener que conectarse a una base de datos.
Espero que esto ayude. Déjeme saber si usted necesita alguna aclaración sobre cualquier cosa.