0
我正在尋找一些關於如何使用StructureMap或Unity與NUnit進行以下模擬測試的示例。StrucutureMap RhinoMock記錄/回放,需要的示例
我有以下代碼結構
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);
}
}
}
如果我包括StructureMap配置它忽略了模擬和Rhino.Mocks.MockRepository.VerifyAll()拋出異常。
如果我不包含structureMap配置,我會爲PluginFamily MyObject.IDAL定義No Default Instance。
有人能指出我正確的方向,我做錯了什麼?
是,將工作,但 我試圖避免特殊外殼的構造只是爲了模仿測試 – Brian 2009-11-13 20:23:12
這不是一個特例。這就是您在使用像StructureMap這樣的IOC工具時應如何設計您的類。 – 2009-11-14 17:24:44