1- # MathCore.TestsExtensions
1+ # MathCore.TestsExtensions
22
3- Ðàñøèðåíèÿ äëÿ MSTest, äîáàâëÿþùèå óäîáíûé fluent-èíòåðôåéñ ê ñòàíäàðòíûì àññåðòàì ÷åðåç òî÷êè ðàñøèðåíèÿ :
3+ Расширения для MSTest, добавляющие удобный fluent-интерфейс к стандартным ассертам через точки расширения :
44- ` Assert.That `
55- ` CollectionAssert.That `
66- ` StringAssert.That `
77
8- Ïàêåò ïîìîãàåò ïèñàòü âûðàçèòåëüíûå è êîìïàêòíûå ïðîâåðêè ñî ñâÿçíûì API: ïðîâåðêà çíà÷åíèé, êîëëåêöèé, ïåðå÷èñëåíèé, ñòðîê è èñêëþ÷åíèé ñ íàãëÿäíûìè ñîîáùåíèÿìè îá îøèáêàõ .
8+ Пакет помогает писать выразительные и компактные проверки со связным API: проверка значений, коллекций, перечислений, строк и исключений с наглядными сообщениями об ошибках .
99
10- ## Óñòàíîâêà
10+ ## Установка
1111
12- - Ïëàòôîðìà : .NET Standard 2.0
13- - Çàâèñèìîñòü : MSTest.TestFramework >= 4.0.2
12+ - Платформа : .NET Standard 2.0
13+ - Зависимость : MSTest.TestFramework >= 4.0.2
1414
15- NuGet-ïàêåò : MathCore.TestsExtensions
15+ NuGet-пакет : MathCore.TestsExtensions
1616
17- ## Áûñòðûé ñòàðò
17+ ## Быстрый старт
1818
1919``` csharp
2020using Microsoft .VisualStudio .TestTools .UnitTesting ;
@@ -36,24 +36,24 @@ public class SampleTests
3636}
3737```
3838
39- ## Òî÷êè ðàñøèðåíèÿ è fluent-èíòåðôåéñ
39+ ## Точки расширения и fluent-интерфейс
4040
41- Ïàêåò äîáàâëÿåò ðàñøèðåíèå ` That ` ê ñòàíäàðòíûì àññåðòàì :
42- - ` Assert.That ` — ïðîâåðêè çíà÷åíèé (` Value ` ), ôóíêöèé/äåéñòâèé (` Method ` ), ïåðå÷èñëåíèé (` Enumerable ` ) è êîëëåêöèé (` Collection ` )
43- - ` CollectionAssert.That ` — ïðîâåðêè êîëëåêöèé (` Collection ` )
44- - ` StringAssert.That ` — ïðîâåðêè ñòðîê ÷åðåç ` Value(string) `
41+ Пакет добавляет расширение ` That ` к стандартным ассертам :
42+ - ` Assert.That ` — проверки значений (` Value ` ), функций/действий (` Method ` ), перечислений (` Enumerable ` ) и коллекций (` Collection ` )
43+ - ` CollectionAssert.That ` — проверки коллекций (` Collection ` )
44+ - ` StringAssert.That ` — проверки строк через ` Value(string) `
4545
46- Áàçîâûé ïàòòåðí èñïîëüçîâàíèÿ: íà÷àòü ñ íóæíîé «òî÷êè », ïîëó÷èòü «÷åêåð» è âûçûâàòü öåïî÷êîé ìåòîäû-ïðîâåðêè. Äëÿ óäîáñòâà áîëüøèíñòâî ÷åêåðîâ èìåþò ñâîéñòâî ` And => Assert.That ` , ïîçâîëÿÿ ïðîäîëæàòü öåïî÷êó ñ íîâîé ïðîâåðêè .
46+ Базовый паттерн использования: начать с нужной «точки », получить «чекер» и вызывать цепочкой методы-проверки. Для удобства большинство чекеров имеют свойство ` And => Assert.That ` , позволяя продолжать цепочку с новой проверки .
4747
48- ### Ïðèìåðû : Assert.That
48+ ### Примеры : Assert.That
4949
50- Ïðîâåðêà çíà÷åíèÿ è ñðàâíåíèå ñ òî÷íîñòüþ :
50+ Проверка значения и сравнение с точностью :
5151``` csharp
5252Assert .That .Value (1 . 1 ).LessOrEqualsThan (1 . 0 , 0 . 1 );
5353Assert .That .Value (10 ).GreaterThan (5 );
5454```
5555
56- Ïðîâåðêà èñêëþ÷åíèé :
56+ Проверка исключений :
5757``` csharp
5858Assert .That .Method (() => throw new InvalidOperationException ())
5959 .Throw <InvalidOperationException >();
@@ -62,7 +62,7 @@ Assert.That.Method(() => 1 / 0)
6262 .Throw <DivideByZeroException >();
6363```
6464
65- Ïåðå÷èñëåíèÿ (` IEnumerable<T> ` ):
65+ Перечисления (` IEnumerable<T> ` ):
6666``` csharp
6767IEnumerable < string > actual = new [] { " file3.txt" , " file4.txt" , " file5.txt" , " file6.txt" };
6868IEnumerable < string > expected = new [] { " file3.txt" , " file4.txt" , " file5.txt" , " file6.txt" };
@@ -71,9 +71,9 @@ Assert.That.Enumerable(actual).IsEqualTo(expected);
7171Assert .That .Enumerable (actual ).Contains (s => s .EndsWith (" .txt" ));
7272```
7373
74- ### Ïðèìåðû : CollectionAssert.That
74+ ### Примеры : CollectionAssert.That
7575
76- Ïðîâåðêè äëÿ ` ICollection<T> ` è ìàññèâîâ :
76+ Проверки для ` ICollection<T> ` и массивов :
7777``` csharp
7878var items = new [] { 1 , 3 , 5 , 7 };
7979
@@ -86,17 +86,17 @@ var expected = new[] { 1, 3, 5, 7 };
8686CollectionAssert .That .Collection (items ).IsEqualTo (expected );
8787```
8888
89- Ïîêðûòèå ñöåíàðèåâ ñ òî÷íîñòüþ äëÿ double:
89+ Покрытие сценариев с точностью для double:
9090``` csharp
9191double [] actual = { 1 . 0 , 2 . 0 , 3 . 000000001 };
9292double [] expected = { 1 . 0 , 2 . 0 , 3 . 0 };
9393
9494Assert .That .Collection (actual ).IsEqualTo (expected , 1 e - 8 );
9595```
9696
97- ### Ïðèìåðû : StringAssert.That
97+ ### Примеры : StringAssert.That
9898
99- Ñòðîêîâûå ïðîâåðêè ÷åðåç ` ValueChecker<string> ` :
99+ Строковые проверки через ` ValueChecker<string> ` :
100100``` csharp
101101StringAssert .That .Value (" Hello, World!" )
102102 .StartWith (" Hello" )
@@ -105,9 +105,9 @@ StringAssert.That.Value("Hello, World!")
105105 .Matches (@" ^Hello,\sWorld!$" );
106106```
107107
108- ## Äîïîëíèòåëüíî: ðàáîòà ñ ýëåìåíòàìè ïåðå÷èñëåíèé/êîëëåêöèé
108+ ## Дополнительно: работа с элементами перечислений/коллекций
109109
110- Ïîçèöèîííûå ïðîâåðêè è ñâîäíûå ìåòðèêè :
110+ Позиционные проверки и сводные метрики :
111111``` csharp
112112var xs = Enumerable .Range (0 , 10 ).ToArray ();
113113
@@ -121,10 +121,10 @@ Assert.That.Enumerable(xs)
121121 .Average (x => x ).IsEqual (4 . 5 );
122122```
123123
124- ## Ñîîáùåíèÿ îá îøèáêàõ
124+ ## Сообщения об ошибках
125125
126- ×åêåðû ôîðìèðóþò ïîíÿòíûå ñîîáùåíèÿ: ïðè íåðàâåíñòâå óêàçûâàþòñÿ èíäåêñû ýëåìåíòîâ è ñâîäêè ïî ðàñõîæäåíèÿì (âêëþ÷àÿ îòíîñèòåëüíóþ îøèáêó äëÿ ÷èñëîâûõ òèïîâ ), à òàêæå ïðèêëàäûâàþòñÿ ` Expected ` è ` Actual ` â ` Exception.Data ` .
126+ Чекеры формируют понятные сообщения: при неравенстве указываются индексы элементов и сводки по расхождениям (включая относительную ошибку для числовых типов ), а также прикладываются ` Expected ` и ` Actual ` в ` Exception.Data ` .
127127
128- ## Ëèöåíçèÿ
128+ ## Лицензия
129129
130130MIT
0 commit comments