Возникли проблемы с методами насмешки на интерфейсах - PullRequest
0 голосов
/ 14 июня 2019

Получение следующей ошибки при попытке использования CallTo() и .Returns() в методах интерфейсов.

Код серьезности Описание Состояние подавления строки файла проекта Ошибка CS1929 «IReturnValueArgumentValidationConfiguration» не содержит определения для «возвратов» и наилучшей перегрузки метода расширения «ReturnValueConfigurationExtensions.Returns (IReturnValueConfiguration>, string)» требует приемник типа «IReturnValueConfiguration>> CareControls.Ivis \ IIS.ISVISS \ IIS.ISVISS \ IIS.ISVIS \ CareControls.Ivis.Tests \ Framework \ AbIo \ TimerHandlerTests.cs 105 Active

Вот тест: я добавил комментарии, чтобы показать, какого типа был каждый тип и где происходили ошибки компилятора.

[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 ().

...