Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在容器中测试预期。使用参数解决_C#_Unit Testing_Dependency Injection_Unity Container - Fatal编程技术网

C# 如何在容器中测试预期。使用参数解决

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 }, {

关于如何为具有参数重写的unity容器解析调用创建测试期望,我有一个问题

这是我的职责:

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);
还有其他方法可以做到这一点,比如将其抽象为虚拟方法,以便指定期望值