В своем проекте тестирования сначала убедитесь, что вы добавили сборку Moles, соответствующую тестируемой сборке. Вы также захотите добавить оператор using
тестируемой сборки с добавлением .Moles
, чтобы вы могли использовать смоделированную сборку.
Родинки изменяют имена классов и методов на форму M[Original Class Name].[Original Method Name][typeof param1][typeof param2]...
. В вашем случае обход этого метода может выглядеть как MClass.BuildCustomerUpdatePlanListList = (List x, List y) => { [code]};
. Это определяет анонимный метод, который принимает два List
в качестве параметров, и вы добавляете в функцию любой код, который хотите. Просто убедитесь, что вы возвращаете IEnumerable
в этом анонимном методе.
Вот пример использования родинок для обхода Directory.GetFiles
:
using System.IO.Moles;
[assembly: MoledType(typeof(System.IO.Directory))]
...
MDirectory.GetFilesStringString = (string x, string y) => new string[0];
Поскольку класс Directory
является членом System.IO
, я использую using System.IO.Moles;
, чтобы указать, что я хочу использовать смоделированные элементы сборки.
Для родинок необходимо указать типы Moled: [assembly: MoledType(typeof(System.IO.Directory))]
выполняет работу.
Наконец, Directory.GetFiles
принимает две строки в качестве параметров и возвращает массив строк. Чтобы отклонить метод от возврата эквивалента не найденных файлов, метод moled просто возвращает new string[0]
. Фигурные скобки необходимы, если вы хотите, чтобы в анонимном методе было несколько строк, и, если не использовать метод void, оператор return, соответствующий типу, который вернул бы оригинальный метод.