在接口方法上尝试使用CallTo()
和.Returns()
时,收到以下错误。
严重性代码描述项目文件行抑制状态 错误CS1929'IReturnValueArgumentValidationConfiguration'不包含'Returns'的定义,最佳扩展方法重载'ReturnValueConfigurationExtensions.Returns(IReturnValueConfiguration>,string)'需要类型为'IReturnValueConfiguration>''的接收者CareControls.Ivis.Tests G:\ Ivis \ CareControls.Ivis.Tests \ Framework \ AbIo \ TimerHandlerTests.cs 105有效
这是测试:我添加了注释,以显示每种类型是什么以及编译器错误发生的位置。
[Fact]
public void Reads_AbPlc_at_each_inputs_label()
{
var abPlc = A.Fake<AbPlc>(); // interface
var input1 = A.Fake<ToggleUi>(); // interface
var input2 = A.Fake<ToggleUi>(); // interface
var w2 = A.Fake<MethodWeb>(); // class
var f = this.fixture;
input1.Label = f.Create<string>();
input2.Label = f.Create<string>();
A.CallTo(() => this.ui.Inputs)
.Returns(new LinkedListLot<ToggleUi>(
new[]
{
input1,
input2
}));
var a = f.Create<bool>();
A.CallTo(() => input1.GetHashCode())
.Returns(0xFF); // error
A
.CallTo(() => abPlc.Read(input1.Label))
.Returns(false); // error
A.CallTo(() => w2.RegisterDependency(null, null))
.Returns(false); // compiles fine
var w = this.web;
w.RegisterDependency(new UiReaderWriter());
w.RegisterDependency(abPlc);
this.handler.Handle(
this.ui);
A
.CallTo(() => abPlc.Read(input1.Label))
.MustHaveHappened();
A
.CallTo(() => abPlc.Read(input2.Label))
.MustHaveHappened();
}
最后一句话:这些接口方法不是扩展方法。
编辑1:我相信接口的属性工作正常。
编辑2:实际包含错误并更新了GetHashCode()调用,以实际反映GetHashCode()信号。