Помогите с синтаксисом Moles для тестирования частного метода с дженериками

StackOverflow https://stackoverflow.com/questions/7340507

  •  27-10-2019
  •  | 
  •  

Вопрос

У меня есть подпись для метода, который выглядит следующим образом: частный Ienumerable BuildCustomerUpdateplan (список локальных категорий, списка CrmchangedCustomers) {}

Когда я смотрю на разглашенный объект, синтаксис (Intellisense) о том, как назвать метод и проверить его абсолютно сбивает с толку, и каждый раз, когда я делаю его, я получаю ошибки компиляции. Я просмотрел основные учебные пособия, предоставленные на сайте MSFT, но я просто не понимаю, как проверить частный метод, используя родинки или как справиться с типом возврата и несколькими параметрами.

К сожалению, я не смог найти другие хорошие или потоки, демонстрирующие более сложный выборку, чем просто работа с простым методом add (), который выплевывает Int и принимает Int. :(

Советы?

Это было полезно?

Решение

В своем проекте тестирования сначала убедитесь, что вы добавили сборку молей, соответствующую тестированию сборки. Вы также захотите добавить using заявление об ассамблежном тестировании с .Moles Добавлен, чтобы вы могли использовать сглаженную сборку.

Волны меняют названия классов и методов в форму M[Original Class Name].[Original Method Name][typeof param1][typeof param2].... Анкет В вашем случае объезд для этого метода может выглядеть как MClass.BuildCustomerUpdatePlanListList = (List x, List y) => { [code]};. Анкет Это определяет анонимный метод, который занимает два ListS как параметры, и вы бы поместили в функцию любой код. Просто убедитесь, что вы верните 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; Чтобы указать, что я хочу использовать сглаженных членов Ассамблеи.

Росы требуют, чтобы вы указывали типы, лишенные: [assembly: MoledType(typeof(System.IO.Directory))] делает работу.

Окончательно, Directory.GetFiles принимает две строки в виде параметров и возвращает строковый массив. Чтобы подчеркнуть метод в возврат эквивалента не найденных файлов, сглаженный метод просто возвращает new string[0]. Анкет Кудрявые брекеты необходимы, если вам нужны несколько строк в анонимном методе и, если не подтягивая метод void, обратный оператор, соответствующий типу, который возвращает исходный метод.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top