Unit testing 通过app.config配置Unity(2.x)以使用Moq作为实现
我为国际奥委会使用团结。我想使用app.config配置moq对象的创建。 我的配置如下所示:Unit testing 通过app.config配置Unity(2.x)以使用Moq作为实现,unit-testing,inversion-of-control,unity-container,moq,Unit Testing,Inversion Of Control,Unity Container,Moq,我为国际奥委会使用团结。我想使用app.config配置moq对象的创建。 我的配置如下所示: <unity xmlns="schemas.microsoft.com/practices/2010/unity"> <container> <register type="Namespace1.IFoo, FooInterface" mapTo="Namespace2.FooImp, FooI
<unity xmlns="schemas.microsoft.com/practices/2010/unity">
<container>
<register type="Namespace1.IFoo, FooInterface"
mapTo="Namespace2.FooImp, FooImplementation">
</register>
</container>
</unity>
<unity xmlns="schemas.microsoft.com/practices/2010/unity">
<container>
<register type="Namespace1.IFoo, FooInterface"
mapTo="Moq.Mock<IFoo>, Moq">
</register>
</container>
</unity>
我正在寻找一种技术来指定如下配置:
<unity xmlns="schemas.microsoft.com/practices/2010/unity">
<container>
<register type="Namespace1.IFoo, FooInterface"
mapTo="Namespace2.FooImp, FooImplementation">
</register>
</container>
</unity>
<unity xmlns="schemas.microsoft.com/practices/2010/unity">
<container>
<register type="Namespace1.IFoo, FooInterface"
mapTo="Moq.Mock<IFoo>, Moq">
</register>
</container>
</unity>
我知道我必须访问Mock的.Object属性,但这个示例只是为了解释我想做什么
换句话说:我不想使用代码将unity配置为使用moq。当然,一个选择是创建一些可以在一般情况下使用的助手。在没有人可以帮助我之后,我想出了一些办法 使用工厂进行moq,并通过unity添加工厂分辨率
示例开始您希望Moq为容器创建的每个对象创建实例,还是仅为特定实例创建实例?如何验证对模拟的调用是否已发出?如何设置模拟的返回值?我想使用特定类型。我不想用模拟容器替换unitycontainer。我将通过将模拟的生存期限制为单例来进行设置和验证。因此,您希望通过配置注册
Mock
的单例生存期,告诉容器你想通过config使用Mock.Object
作为IFoo
的实现,然后通过代码为你的Mock(你必须首先从容器中解析)设置期望值和返回值?你为什么要这样做?@SebastianWeber。原因很简单:有时您只想禁用组件,而不需要验证调用等。