Насмешка метода базового класса звонит с Moq

Kronoz, спасибо. Я нашел в Вашей функции что строка:

`if (!lowerWord.Contains(lowerPrefix)) return word`;

должен сказать

if (!lowerWord.StartsWith(lowerPrefix)) return word;

, таким образом, "informaciГіn" не изменяется на "InforMacIГіn"

лучше всего,

Enrique

20
задан user158363 18 August 2009 в 10:55
поделиться

2 ответа

Если я правильно понимаю ваш вопрос, у вас есть класс A, определенный в какой-то другой сборке, а затем класс B, реализованный более или менее следующим образом:

public class B : A
{
    public override MyMethod(object input)
    {
        // Do something
        base.MyMethod(input);
    }
}

И теперь вы хотите проверить, что base.MyMethod вызывается?

Я не понимаю, как это можно сделать с помощью динамической имитирующей библиотеки. Все динамические имитационные библиотеки (за исключением TypeMock) работают, динамически генерируя классы, производные от рассматриваемого типа.

В вашем случае вы не можете очень хорошо просить Moq наследовать от A , поскольку вы хотите протестировать B .

Это означает, что вы должны попросить Moq предоставить вам Mock . Однако это означает, что испускаемый тип является производным от B, и хотя он может переопределять MyMethod (который все еще является виртуальным) и вызывать его базу (B.MyMethod),

12
ответ дан 30 November 2019 в 00:19
поделиться

Согласитесь с Марком, использование Moq невозможно.

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

2
ответ дан 30 November 2019 в 00:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: