2016-07-11 6 views
0

Fluent Assertions - это библиотека .NET для любых утверждений, но я не могу заставить ее работать с PowerShell. Это вообще возможно?Можно ли использовать библиотеку Fluent Assertions с PowerShell?

Я использовал Add-Type используется для добавления библиотек DLL библиотечных и попытался следующий пример:

PS C:\Users\ymm> $test = 'test string' 
PS C:\Users\ymm> $test.[FluentAssertions.AssertionExtensions]::Should().BeNull() 

Но получил следующее сообщение об ошибке:

Cannot find an overload for "Should" and the argument count: "0". 
At line:1 char:1 
+ $test.[FluentAssertions.AssertionExtensions]::Should().BeNull() 
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
+ CategoryInfo   : NotSpecified: (:) [], MethodException 
+ FullyQualifiedErrorId : MethodCountCouldNotFindBest 
+1

Вы ознакомились с Pester (https://github.com/pester/Pester)? Он написан для тестирования Powershell и поэтому не содержит многословия родной библиотеки .NET. –

+0

Pester - это хорошо, но не подходит для этой библиотеки. И, насколько я помню, для работы требуется определенная структура файла и синтаксис, т. Е. Я не могу просто использовать само утверждение без блока «Описать» и т. Д. – YMM

ответ

1

Я думаю, что вы собираетесь должны называть его явным статическим методом.

В теории, это было бы:

[FluentAssertions.AssertionExtensions]::Should($test).BeNull() 

Однако, в то время как это простой пример, вы, возможно, придется explitly ввести аргументы, чтобы избежать неоднозначности позже. Powershell скорее всего неявно сделает аргументы PSObject, который будет разрешен до Object вместо string или любого другого конкретного типа.

+0

К сожалению, это не так :( – YMM

0

Should, а также все утверждения в Fluent assertions являются методами расширения, которые не поддерживаются PowerShell.

Я бы рекомендовал использовать специальную библиотеку утверждений PowerShell или библиотеку .net с регулярными методами синтаксиса.

В дополнение к методам расширения, см. this question для того, что задействовано в следующих общих методах для не общих классов.

 Смежные вопросы

  • Нет связанных вопросов^_^