C# 如何在容器中测试预期。使用参数解决
关于如何为具有参数重写的unity容器解析调用创建测试期望,我有一个问题 这是我的职责:C# 如何在容器中测试预期。使用参数解决,c#,unit-testing,dependency-injection,unity-container,C#,Unit Testing,Dependency Injection,Unity Container,关于如何为具有参数重写的unity容器解析调用创建测试期望,我有一个问题 这是我的职责: protected override Response DecodeResponse(byte[] data) { Response response = base.container.Resolve<MyClass>(new ParameterOverrides { { "Code", GCommandCode.ClearAlarm }, {
protected override Response DecodeResponse(byte[] data)
{
Response response = base.container.Resolve<MyClass>(new ParameterOverrides
{
{ "Code", GCommandCode.ClearAlarm },
{ "Error", 0 }
});
return response;
}
这是我的单元测试:
// Arrange
IUnityContainer container = MockRepository.GenerateStub<IUnityContainer>();
container.Expect(c => c.RegisterType<MyClass>()).Repeat.Once();
container.Expect(c => c.Resolve<MyClass>()).Repeat.Once().Return(preparedResponse);
Mock mock = new Mock(container);
// Act
Response response = mock.DecodeResponse(new byte[] {});
// Assert
container.VerifyAllExpectations();
我想创建一个测试预期来测试构造函数参数,因为在实际测试中,无论使用哪个参数,预期都会通过,并且resolve调用返回空值。我猜您所指的构造函数参数就是容器。并且您要验证.Resolve与参数的期望值 无法验证IUnityContainer(如Resolve)的
public static T Resolve<T>(this IUnityContainer container,
params ResolverOverride[] overrides);
还有其他方法可以做到这一点,比如将其抽象为虚拟方法,以便指定期望值