Использование C ++ / CLI - один из вариантов.Таким образом, вы можете использовать fitSharp в качестве моста от FitNesse к вашему коду фикстуры, но ваш код фикстуры может напрямую вызываться в C ++.
Вот простой пример тестирования класса Calculator.Во-первых, вот код C ++, который мы хотим протестировать:
class Calculator
{
public:
int Add(int x, int y)
{
return x + y;
}
};
, а вот код фиксации C ++ / CLI:
public ref class CalculatorFixture
{
public:
property int X;
property int Y;
property int Z;
void Execute()
{
Calculator calculator;
Z = calculator.Add(X,Y);
}
};
Вики-страница FitNesse будет выглядеть следующим образом:
!define TEST_SYSTEM {slim}
!define COMMAND_PATTERN {%m -r fitSharp.Slim.Service.Runner,C:\fitnesse\fitsharp\fitsharp.dll %p}
!define TEST_RUNNER {C:\fitnesse\fitsharp\Runner.exe}
!path c:\CalculatorFixture.dll
!|CalculatorFixture|
|X |Y |Z? |
|2 |2 |4 |
|3 |4 |7 |
Одной из проблем, о которых следует помнить, является то, что библиотеки C ++ / CLI, как правило, являются либо 32-разрядными, либо 64-разрядными, тогда как для запуска fitSharp используется «любой процессор».Поэтому, если вы соберете свою C ++ / CLI DLL как 32-битную и попытаетесь использовать fitSharp с ней в 64-битной ОС, вы получите ошибку «неправильный формат».В этом случае либо создайте C ++ / CLI DLL как 64-битную версию, либо используйте corflags, чтобы заставить fitsharp runner (Runner.exe) быть 32-битной.