Dan*_*Dan 4 unit-testing castle-windsor rhino rhino-commons automocking
我想和温莎一起做自动锁定,以便我可以做类似的事情
_controller = _autoMockingContainer.Create<MyControllerWithLoadsOfDepdencies>();
Run Code Online (Sandbox Code Playgroud)
在Ayende的 Rhino图书馆里曾经有一个Windsor自动模拟容器.但这似乎不再维持,所以依赖关系有点旧(它使用Castle Windsor 2,但我们需要引用2.5),因此导致dll地狱.
有没有可行的替代方案?我尝试从rhino测试中提取出相关的类,但是我可以处理的更多内容.
感谢@ mookid8000的链接以及同事的帮助,我创造了这个......这似乎就是诀窍.
public abstract class TestBase
{
static readonly WindsorContainer _mockWindsorContainer;
static TestBase()
{
_mockWindsorContainer = new WindsorContainer();
_mockWindsorContainer.Register(Component.For<LazyComponentAutoMocker>());
}
protected static T MockOf<T>() where T : class
{
return _mockWindsorContainer.Resolve<T>();
}
protected static T Create<T>()
{
_mockWindsorContainer.Register(Component.For<T>());
return _mockWindsorContainer.Resolve<T>();
}
}
public class LazyComponentAutoMocker : ILazyComponentLoader
{
public IRegistration Load(string key, Type service, IDictionary arguments)
{
return Component.For(service).Instance(MockRepository.GenerateStub(service));
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2159 次 |
| 最近记录: |