Parece que lo único que está haciendo con la llamada a Comenzar() regresa a su clase configurada para esa interfaz en particular: IUnitOfWork
Realmente sólo tiene que asegurarse de que su llamada a Begin() devuelve una aplicación simulada de IUnitOfWork
una de las dos maneras que usted puede hacer esto:
Opción uno - Refactor UnitOfWorkSS
de manera que se puede establecer la instancia de IUnitOfWork
a devolver
public static class UnitOfWorkSS
{
private static IUnitOfWork _unitOfWork;
public static IUnitOfWork UnitOfWork
{
set { _unitOfWork = value; }
private get{ _unitOfWork ?? (_unitOfWork = IoC.Resolve<IUnitOfWork>()); }
}
public static IUnitOfWork Begin()
{
return UnitOfWork;
}
}
[TestMethod]
public void DoStuff()
{
var mockUnitOfWork = new Mock<IUnitOfWork>();
UnitOfWorkSS.UnitOfWork = mockUnitOfWork.Object;
//Do some setup and verify
}
Opción dos - Sólo tiene que registrar una instancia de simulacro de IUnitOfWork
con su IoC Container
private Mock<IUnitOfWork> _mockUnitOfWork;
[TestInitialize]
public void Init()
{
_mockUnitOfWork = new Mock<IUnitOfWork>();
//Making a lot of assumptions about your IoC here...
IoC.Register<IUnitOfWork>(_mockUnitOfWork.Object);
}
[TestMethod]
public void DoStuff()
{
_mockUnitOfWork.Setup(...);
//Do some verification
}
La opción 2 me parece mejor teniendo en cuenta que la opción 1 introduce el estado en una clase estática solo por el hecho de hacerlo comprobable; sin embargo, tal vez eso es todo lo que el OP está buscando. – aaaaaa