Moq VerifySet (Action) заменяет устаревшую ошибку компиляции выражения - PullRequest
16 голосов
/ 14 марта 2012

Ссылаясь на этот вопрос:

Moq, как заменить устаревшее выражение

У меня есть следующее:

[Test]
public void OnSearchRequest_ViewFiresEvent_EventIsHandled()
{
    // Arrange
    Mock<IViewUsers> view = new Mock<IViewUsers>();
    Users users = new Users(view.Object);

    // Act
    view.Raise(v => v.SearchForUsers += null, this, new SearchEventArgs());

    // Assert
    view.VerifySet(v=> v.SearchResult = It.IsAny<List<IUser>>());

}

Первоначально у меня было:

        // Assert
        view.VerifySet(v => v.SearchResult);

Но получало предупреждение:

'Moq.MockExtensions.VerifySet (Moq.Mock, System.Linq.Expressions.Expression>)' устарел: 'Замененоby VerifySet (Action) '

Итак, я нашел вопрос, на который ссылаются выше, и изменил его, чтобы он соответствовал, но теперь я ВСЕ ЕЩЕ получаю это предупреждение и, кроме того, серьезную ошибку при включении "v.SearchResult "в вызове VerifySet:

Дерево выражений может не содержать оператор присваивания.

Я не вижу, что форматирую это неправильно- так почему же он не признает это как действие, как следует из другого вопроса?

Ответы [ 2 ]

1 голос
/ 18 июня 2014

Я нашел что-то относительно близкое к тому, о чем вы спрашиваете. Moq, как заменить устаревшее выражение Я не знаю, помогает ли это, потому что я когда-либо использовал mock.Setup и mock.Verify.

Также, как упоминалось ранее, попробуйте использовать лямбда-выражения в вашем It.IsAny, чтобы точно определить мелкие вещи таким образом.Если проверка не удалась, вы точно знаете, где она не прошла.Особенно, если вы ожидаете значение в определенной позиции, например.

0 голосов
/ 27 марта 2012

Не знаю, помогает ли это, но в прошлом у меня были проблемы с использованием It.IsAny<> со списками. Не могли бы вы попробовать что-то вроде It.Is<List<IUser>>(l => l != null)?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...