Поиск…


замечания

Мок - издевательская библиотека для .Net. Это позволяет моделировать и проверять взаимодействия с зависимостями, чтобы облегчить модульное тестирование.

Заметки о выпуске для другой версии Moq можно найти здесь .

Установка или настройка

  1. Выберите проект, который вы хотите добавить в Moq.
  2. Откройте Nuget для этого проекта.
  3. Выберите «Обзор», а затем введите «moq» в поле поиска.
  4. Выберите «Moq» и нажмите «Установить».

введите описание изображения здесь

После этих шагов будет установлен пакет Moq и добавится ссылка на него в выбранных ссылках проекта. После завершения этих шагов Moq может быть использован в проектном модульном проекте, просто объявив его в файлах тестовых классов:

Using Moq;

Moqs - тестовые двойники

Mocks означают как двойные тесты, которые позволяют проверять взаимодействие с мошенниками, они не предназначены для замены тестируемой системы. Примеры часто демонстрируют особенности Moq следующим образом:

// Create the mock
var mock = new Mock<IMockTarget>();

// Configure the mock to do something
mock.SetupGet(x => x.PropertyToMock).Returns("FixedValue");

// Demonstrate that the configuration works
Assert.AreEqual("FixedValue", mock.Object.PropertyToMock);

// Verify that the mock was invoked
mock.VerifyGet(x => x.PropertyToMock);

Хотя этот пример показывает шаги, связанные с использованием макета, важно помнить, что он фактически ничего не тестирует, кроме того, что макет был настроен и использовался правильно. Фактический тест, который использует макет, будет давать макет системе, которая должна быть проверена. Чтобы протестировать следующий метод:

public class ClassToTest
{
    public string GetPrefixedValue(IMockTarget provider)
    {
        return "Prefixed:" + provider.PropertyToMock;
    }
}

Можно создать макет зависимого интерфейса:

public interface IMockTarget
{
    string PropertyToMock { get; }
}

Чтобы создать тест, который фактически проверяет поведение метода GetPrefixedValue :

// Create and configure the mock to return a known value for the property
var mock = new Mock<IMockTarget>();
mock.SetupGet(x => x.PropertyToMock).Returns("FixedValue");

// Create an instance of the class to test
var sut = new ClassToTest();

// Invoke the method to test, supplying the mocked instance
var actualValue = sut.GetPrefixedValue(mock.Object);

// Validate that the calculated value is correct
Assert.AreEqual("Prefixed:FixedValue", actualValue);

// Depending on what your method does, the mock can then be interrogated to
// validate that the property getter was called.  In this instance, it's
// unnecessary since we're validating it via the calculated value.
mock.VerifyGet(x => x.PropertyToMock);


Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow