Как использовать дополнительные операторы сотовой связи в fitsharp

FitSharp поддерживает дополнительные операторы ячеек

Как я могу использовать это конкретно? http://fitsharp.github.io/Fit/CompareFloatingPoint.html

Я прочитал нижнюю часть этой страницы http://fitsharp.github.io/Fit/CellOperators.html

Я попытался поместить Processor.AddOperator("fitSharp.Fit.Operators.CompareFloatingPoint"); в тестируемый метод.

public class Division
{
    public double Numerator { get; set; }
    public double Denominator { get; set; }

    public double Quotient()
    {
        Processor.AddOperator("fitSharp.Fit.Operators.CompareFloatingPoint");
        return Numerator / Denominator;
    }
}

Я пробовал файл suiteconfig

<suiteConfig>
    <Fit.Operators>
        <Add>fitSharp.Fit.Operators.CompareFloatingPoint</Add>
    </Fit.Operators>
</suiteConfig>

В том числе в разметке Fitnesse вот так !define COMMAND_PATTERN {%m -r fitnesse.fitserver.FitServer -c C:\fit\tests\SuiteConfig.xml %p}

Вывод теста в настоящее время выглядит так

.fail, span.fail * {
    background-color: #FFAAAA;
}
.pass, span.pass * {
    background-color: #c1e2b3;
    color: #081109;
}
table {
    width: 100%;
    margin-bottom: 20px;
    border: 1px solid #dddddd;
    width: auto;
}
table > thead > tr > th, table > tbody > tr > th, table > tfoot > tr > th, table > thead > tr > td, table > tbody > tr > td, table > tfoot > tr > td {
    border: 1px solid #dddddd;
}
table > thead > tr > th, table > tbody > tr > th, table > tfoot > tr > th, table > thead > tr > td, table > tbody > tr > td, table > tfoot > tr > td {
    padding: 5px;
}
<table>
	<tbody><tr>
		<td colspan="3"><span class="fit_interpreter">tests.Division</span></td>
	</tr>
	<tr>
		<td><span class="fit_member">numerator</span></td>
		<td><span class="fit_member">denominator</span></td>
		<td><span class="fit_member">quotient?</span></td>
	</tr>
	<tr>
		<td>10</td>
		<td>2</td>
		<td class="pass">5</td>
	</tr>
	<tr>
		<td>12.6</td>
		<td>3</td>
		<td class="pass">4.2</td>
	</tr>
	<tr>
		<td>100</td>
		<td>4</td>
		<td class="pass">25</td>
	</tr>
	<tr>
		<td>22</td>
		<td>7</td>
		<td class="fail">3.14 <span class="fit_label">expected</span><hr>3.14285714285714 <span class="fit_label">actual</span></td>
	</tr>
</tbody></table>


person JJS    schedule 24.07.2015    source источник
comment
Выглядит правильно - какая проблема у вас была?   -  person Mike Stockdale    schedule 25.07.2015
comment
@MikeStockdale Я пытаюсь пройти тест Division здесь fitnesse.org/FitNesse.UserGuide.TwoMinuteExample работающий. В этом тесте используется тестовая система Slim, поэтому он предоставляет оператор ~=. Я использую Fit, а не Slim. Я был под впечатлением, что операторы сотовой связи допускают аналогичную функциональность.   -  person JJS    schedule 25.07.2015
comment
Как выглядит ваш тест, когда вы его запускаете?   -  person Mike Stockdale    schedule 26.07.2015
comment
@MikeStockdale Я добавил вывод   -  person JJS    schedule 26.07.2015


Ответы (1)


Оператор сотовой связи загружается правильно, проблема в том, что оператор сотовой связи не делает того, на что вы рассчитывали. Оператор CompareFloatingPoint не использует точность ожидаемого значения (3.14), он использует точность строкового представления фактического значения (3.14285714285714). Как вы заметили, fitSharp не поддерживает оператор ~=, вы можете использовать >= 3.14 и ‹ 3.15 в двух строках, но не так хорошо!

person Mike Stockdale    schedule 26.07.2015
comment
Как это звучит, мне нужно использовать такую ​​технику, как эта значения в Fitnesse">stackoverflow.com/questions/18489771/ для тестовой системы Fit, в противном случае используйте ~= с Slim - person JJS; 26.07.2015