Убедитесь, что свойство никогда не устанавливается с помощью Moq

Возможный дубликат:
Moq - Как проверить, что значение свойства установлено через установщик

Я ожидаю, что следующий тест не удастся:

public interface IObjectWithProperty
{
    int Property { get; set; }
}

[TestMethod]
public void Property_ShouldNotBeCalled()
{
    var mock = new Mock<IObjectWithProperty>();

    mock.Object.Property = 10;

    mock.Verify(x => x.Property, Times.Never());
}

Тем не менее, этот тест проходит успешно, хотя доступ к Property явно осуществляется в строке перед Verify.

Кажется, что Verify на самом деле означает VerifyGet.

Как мне убедиться, что свойство никогда не устанавливается?


person g t    schedule 28.11.2012    source источник


Ответы (1)


Вместо этого используйте следующий код:

mock.VerifySet(x => x.Property = It.IsAny<int>(), Times.Never());

person Justin Bannister    schedule 28.11.2012
comment
Спасибо, это работает. Синтаксис кажется легкой ловушкой, поскольку похоже, что код тестируется, хотя на самом деле это не так. Придется сейчас поискать в моем коде Verify(*, Times.Never()) ... - person g t; 28.11.2012