Как я мог проверить это? - PullRequest
2 голосов
/ 25 июля 2010

Я использую библиотеки качества Mono и Lokad для разработки API, который делает такие вещи, как проверка характеристик методов, чтобы увидеть, генерируют ли они исключения и т. Д. И т. Д.

Один из моих методов в этом API выглядит следующим образом:

// Get all methods which have a NotImplementedException
var throwingMethods = _codebase.Methods
    .Where(m => m.GetInstructions()
                 .Exists(i => i.Creates<NotImplementedException>())
    ).ToArray();
 return throwingMethods;

Как я могу это проверить? C # не имеет собственной нативной способности делать то же самое. Возможно, я мог бы просто собрать небольшую сборку, сделать жестко запрограммированную коллекцию и сравнить?

Спасибо

1 Ответ

6 голосов
/ 25 июля 2010

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

Если _codebase устанавливается переменной, передаваемой конструктору класса, который вы тестируете (внедрение конструктора), то это может быть довольно легко (при условии, конечно, что свойство Methods переопределено, а класс не запечатан ).

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