2

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>
    <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>

4

1 回答 1

1

单元运算符已正确加载,问题是单元运算符没有执行您希望的操作。CompareFloatingPoint运算符不使用期望值的精度(3.14),它使用实际值的字符串表示的精度(3.14285714285714)。正如您评论的那样, fitSharp 不支持 ~= 运算符,您可以在两行上使用 >= 3.14 和 < 3.15,但不是那么好!

于 2015-07-26T15:00:37.847 回答