Je cherche quelques exemples sur la façon de faire les tests simulés suivants en utilisant StructureMap ou Unity avec NUnit.StrucutureMap RhinoMock Enregistrement/Lecture, Exemple nécessaire
J'ai la structure de code suivant
public interface IDAL
{
List<Model> Method1(int id);
}
public class DAL : IDAL
{
public List<Model> Method1(int id)
{
List<Model> retval = new List<Model>();
DbCommand cmd = GetStoredProcCommand("Model_Method1");
using (IDataReader dr = DB.ExecuteReader(cmd))
{
LoadEntityBaseList(retval, dr, PopulateDomain);//populate list based on reader
}
return retval;
}
}
public class Manager
{
private readonly IDAL m_DAL;
public Manager()
{
ObjectFactory.Initialize(x => x.ForRequestedType<IDAL>());
m_DAL = ObjectFactory.GetInstance<IDAL>();
}
public List<Domain> Method1(int id)
{
return m_DAL.Method1(id);
}
}
[TestFixture]
public class ManagerTests
[Test]
public void Method1_Calls_DAL()
{
var list = new List<Model>();
using (m_mock.Record())
{
Expect.Call(_dal.Method1(1)).IgnoreArguments().Return(list);
}
using (m_mock.Playback())
{
Manager manager = new Manager();
var actual = manager.Method1(1);
Assert.That(actual, Is.Not.Null);
}
}
}
Si j'inclure la configuration StructureMap Il ne tient pas compte de la Mock et Rhino.Mocks.MockRepository.VerifyAll() renvoie une exception.
Si je n'inclue pas la configuration de structureMap, aucune instance par défaut n'est définie pour PluginFamily MyObject.IDAL. Est-ce que quelqu'un peut me diriger dans la bonne direction sur ce que je fais mal?
Oui cela fonctionnera mais je essaie d'éviter boîtier spécial le constructeur juste pour test du modèle – Brian
Ce n'est pas un cas particulier. C'est ainsi que vous devez concevoir vos classes lorsque vous travaillez avec un outil IOC comme StructureMap. –