厌烦了assert.AreEqal();等等一堆的assert方法了吗? 偶然觅得下面这个奇思妙想
看看下面这个:    
 
assertThat ---  XUnit改进assertThat(something, eq("Hello"));
assertThat ---  XUnit改进assertThat(something, eq(
true));
assertThat ---  XUnit改进assertThat(something, isA(Color.
class));
assertThat ---  XUnit改进assertThat(something, contains(
"World"));
assertThat ---  XUnit改进assertThat(something, same(Food.CHEESE));
assertThat ---  XUnit改进assertThat(something, NULL);
assertThat ---  XUnit改进assertThat(something, NOT_NULL);
 
第二个参数是一个constraint对象.也就是你对something所要检查的约束.

这个功能实在很cool.

1. 没有了那么多的assert方法,看上去很舒服,也更容易理解.

2. 可以方便的组合约束
     
assertThat ---  XUnit改进assertThat(something, not(eq("Hello")));
assertThat ---  XUnit改进assertThat(something, not(contains(
"Cheese")));
assertThat ---  XUnit改进

3. 自定义约束.  
  
assertThat ---  XUnit改进  assertThat(something, between(1020)); 
    
   其实这里面也就是个责任分离的思想.为啥我们想不到?assertThat ---  XUnit改进 当然放到Nunit中, 这个constraint可以通过Delegate来实现. 自己模拟了一下NUnit下的实现, 不知有没有更好的实现?
assertThat ---  XUnit改进using System;
assertThat ---  XUnit改进
assertThat ---  XUnit改进
namespace xnUnit

assertThat ---  XUnit改进using System;
assertThat ---  XUnit改进
assertThat ---  XUnit改进
assertThat ---  XUnit改进
namespace xnUnit

相关文章: