厌烦了assert.AreEqal();等等一堆的assert方法了吗? 偶然觅得下面这个奇思妙想
看看下面这个:
assertThat(something, eq("Hello"));
assertThat(something, eq(true));
assertThat(something, isA(Color.class));
assertThat(something, contains("World"));
assertThat(something, same(Food.CHEESE));
assertThat(something, NULL);
assertThat(something, NOT_NULL);
第二个参数是一个constraint对象.也就是你对something所要检查的约束.
这个功能实在很cool.
1. 没有了那么多的assert方法,看上去很舒服,也更容易理解.
2. 可以方便的组合约束
assertThat(something, not(eq("Hello")));
assertThat(something, not(contains("Cheese")));
3. 自定义约束.
assertThat(something, between(10, 20));
其实这里面也就是个责任分离的思想.为啥我们想不到?
当然放到Nunit中, 这个constraint可以通过Delegate来实现. 自己模拟了一下NUnit下的实现, 不知有没有更好的实现?
using System;

namespace xnUnit
using System;


namespace xnUnit
相关文章: