FIT FOR DOT NET(4)

 

 Fixture内幕

  你的fixture对表可以做任何他们想做的,包括增加行和单元格(参看TechnicalReference ,查找如何进行),但是大多数fixture仅仅标志单元格为对和错.这里由一些标记的规则:

  • 绿色 Fixture比较单元格和软件,他们匹配
  •  (包括 "expected" 和 "actual" 部分): Fixture比较单元格和软件,他们不匹配
  • 黄色: fixture有错误
  • 灰色文本 在白底: 单元格是空,因此fixture显示自己的答案
  • 黑色文本 灰底: fixture忽略单元格

这里有Fixture在表中查找的一些关键词:

  • 一个完全的空格(Blank cell):Fixture试着在里面填充答案(它将给单元格着上面描述的灰白颜色)
  •  单词"Blank":Fixture把它翻译为一个空字符串.(它这样做是因为一个实际是空的单元格意味者"给我一个答案",如前面提到一样)
  • 单词"error": Fixture期望一个错误.如果错误发生,单元格将标着绿色,不是正常的黄色.

这些跟随你可以达到你自己目的的fixture.他们描述如下.简单的说,他们是:

  • ColumnFixture
  • RowFixture
  • ActionFixture
  • SummaryFixture

ColumnFixture

ColumnFixture 是最简单的一种编程fixture,也是最有用的一种,你应该经常使用ColumnFixture

一个ColumnFixture 是为表格里的单行所表达的例子的.一个表可以包含多个实例,一行一个,见下面:

 

为什么称之为"column"fixture呢?因为表中的每列映射你的fixture里的一个对象或者方法.FIT使用第二行列头实现映射.

当一个列头以括号结尾,fixture调用一个方法,而不是设置一个变量.fixture看看从方法返回的值,然后把它和表里面的值比较,然后根据情况着红色获绿色.

结果,所有这些使你写自己的ColumnFixture几乎是微不足道的.下图描述了上面用C#编写的Fixture:

 

ColumnFixtures从左到右,从上到下处理.根据上面的2个图,它好像是你和客户已经写了类似如下的代码:

 // Row 1
 StandardHours = 40;			     // the StandardHours column
 HolidayHours = 0;			     // the HolidayHours column
 Wage = new Currency("20");		     // the Wage column
 CompareResults(new Currency($800), Pay());  // the Pay() column

// Row 2 StandardHours = 45; HolidayHours = 0; Wage = new Currency("20"); CompareResults(new Currency($950), Pay());

// etc...

注意变量在行之间没有清除.


(work still in progress)


你可能感兴趣的:(程序员,Others,.NET,软件工程,Design,Pattern)