0

浏览了网络论坛后,仍然无法在我对以下行的单元测试中纠正此错误。

SetupResult.For
    (strategyFactory.RuleByMailRoomProcess(null, out isMailRoomRequired, out currentAndMailRoom))
        .IgnoreArguments()
        .Return(currentAndMailRoom, isMailRoomRequired, currentAndMailRoom);

最初,它运行良好,但该行如下所示:

SetupResult.For(strategyFactory.RuleByMailRoomProcess(null))
    .IgnoreArguments()
    .Return(currentAndMailRoom, isMailRoomRequired, currentAndMailRoom);

我必须添加两个输出参数,我做到了。但它会引发如下错误:

错误 166 无法从用法中推断方法“Rhino.Mocks.SetupResult.For(T)”的类型参数。尝试明确指定类型参数。C:\Me\ControllerBaseTests.cs 473 13 个单元测试

有人可以帮我吗,我是新手。

4

1 回答 1

0

如果您只想使其编译,只需显式添加类型:

SetupResult.For<ResultType>(strategyFactory.RuleByMailRoomProcess(null, out isMailRoomRequired, out currentAndMailRoom))
    .IgnoreArguments()
    .Return(currentAndMailRoom, isMailRoomRequired, currentAndMailRoom);

如果您希望它被成功推断,您必须调查推断失败的原因。很可能 RuleByMailRoomProcess 被重载并且可以返回多种类型。

于 2014-04-28T06:38:29.410 回答