Изменения документа NSubstitute

Редактировал(а) Alexandr Fokin 2026/03/17 15:36

От версии 1.1
отредактировано Alexandr Fokin
на 2025/05/01 10:35
Изменить комментарий: К данной версии нет комментариев
К версии 1.6
отредактировано Alexandr Fokin
на 2026/03/17 15:34
Изменить комментарий: К данной версии нет комментариев

Сводка

Подробности

Свойства страницы
Содержимое
... ... @@ -1,0 +1,61 @@
1 +|(% style="width:131px" %) |(% style="width:1351px" %)(((
2 +| |nsubstitute/NSubstitute
3 +[[https:~~/~~/github.com/nsubstitute/NSubstitute>>https://github.com/nsubstitute/NSubstitute]]
4 +| |
5 +| |
6 +)))
7 +|(% style="width:131px" %)Преимущества|(% style="width:1351px" %)(((
8 +|[[Moq>>doc:Разработка.NET.Библиотеки.Тестирование.Moq.WebHome]] для создания заглушки используется билдер, который формирует экземпляр. NSubstitute позволяет редактировать заглушку в любой момент (а не только в на этапе конфигурации), иногда это может быть удобно.|
9 +|NSubstitute позволяет указывать тип заглушки не только через Generic, но и через [[Reflection ~~~| Рефлексия>>doc:Разработка.NET.C#.Рантайм и типы.Reflection | Рефлексия .WebHome]] указывая {{code language="c#"}}Type{{/code}} интерфейса.
10 +Также есть возможность указать метод через {{code language="c#"}}MethodInfo{{/code}}.|
11 +| |
12 +)))
13 +|(% style="width:131px" %)Сценарии|(% style="width:1351px" %)(((
14 +|(% style="width:236px" %)Регистрация обработчиков|(% style="width:1096px" %){{code language="c#"}}var stub = Substitute.For<IService>();
15 +// хендлер метода без возврата значения.
16 +stub
17 + .When(e => e.Action1(Arg.Any<string>()))
18 + .Do(e => { });
19 +// хендлер, возвращающий результат
20 +stub.Action1(Arg.Any<string>())
21 + .Returns(e => "test");{{/code}}
22 +|(% style="width:236px" %)Создание заглушки по Type|(% style="width:1096px" %){{code language="c#"}}var stub = Substitude.For(typeof(IService), []);{{/code}}
23 +|(% style="width:236px" %)Регистрация обработчика по MethodInfo|(% style="width:1096px" %)(((
24 +Can NSubstitute mock the return of a MethodInfo?
25 +[[https:~~/~~/stackoverflow.com/questions/41918308/can-nsubstitute-mock-the-return-of-a-methodinfo>>https://stackoverflow.com/questions/41918308/can-nsubstitute-mock-the-return-of-a-methodinfo]]
26 +
27 +{{code language="c#"}}
28 +var stub = Substitute.For<IService>();
29 +var methodInfo = typeof(IService).GetMethod("Method1");
30 +methodInfo.Invoke(stub, null).Returns((e) => "stub");
31 +
32 +{{/code}}
33 +)))
34 +|(% style="width:236px" %) |(% style="width:1096px" %)
35 +)))
36 +
37 +
38 +
39 +----
40 +
41 +==== Внутренние ссылки: ====
42 +
43 +====== Дочерние страницы: ======
44 +
45 +{{children/}}
46 +
47 +====== Обратные ссылки: ======
48 +
49 +{{velocity}}
50 +#set ($links = $doc.getBacklinks())
51 +#if ($links.size() > 0)
52 + #foreach ($docname in $links)
53 + #set ($rdoc = $xwiki.getDocument($docname).getTranslatedDocument())
54 + * [[$escapetool.xml($rdoc.fullName)]]
55 + #end
56 +#else
57 + No back links for this page!
58 +#end
59 +{{/velocity}}
60 +
61 +----