Posit 0.0.2

Posit 0.0.2

测试已测试
语言语言 Obj-CObjective C
许可证 MIT
发布时间最后发布时间2014年12月

未声明 维护。



Posit 0.0.2

  • 作者
  • Ryan Davies

一个基于 'should' 术语的 Objective-C 预期框架。

所有参数和返回类型都必须以对象的形式提供。通过引入最常见数据类型字面量的引入,这已经变得容易得多。

这个库仍在开发中,所以 API 可能会简化,甚至可能发生重大变化。

匹配器

Posit 提供了以下格式的匹配器 [[subject should] ...],以使示例更易读。默认提供的匹配器如下

// Existence:
[[object should] beNil];

// Equality:
[[@(1+2) should] beEqualTo:@3];
[[object should] beIdenticalTo:anotherObject];

// Booleans:
[[@true should] beTrue];
[[@false should] beFalse];
[[@YES should] beYes];
[[@NO should] beNo];

// Numbers:
[[@0 should] beZero];
[[@1 should] bePositive];
[[@(-1) should] beNegative];
[[@6 should] beGreaterThan:@5];
[[@5 should] beLessThan:@6];
[[@6 should] beGreaterThanOrEqualTo:@5];
[[@5 should] beLessThanOrEqualTo:@6];
[[@5 should] beBetween:@1 and:@10];

// Objects:
[[object should] beKindOfClass:[NSObject class]];
[[object should] beMemberOfClass:[NSObject class]];
[[object should] conformToProtocol:@protocol(NSCoding)];
[[object should] respondToSelector:@selector(description)];

// Collections:
[[pets should] beEmpty];
[[pets should] haveObject:cat];
[[pets should] haveObjects:@[cat, dog]];

要否定一个匹配器,以下任一都有效

[[@(1+1) shouldNot] beEqualTo:@3];
[[[@(1+1) should] not] beEqualTo:@3];

使用任何您喜欢的。

以上列出的某些匹配器基于 Posit 的动态行为——如果没有与提供的选择器匹配的匹配器,库将尝试根据惯例实现您 intend 的行为。如果提供的匹配器以 'be' 开始,'be' 将被 'is' 替换,并尝试在主题上调用具有生成选择器的相应方法。例如,'beEqualTo:' 没有匹配器——相反,Posit 在主题上调用 'beEqualTo:',提供期望的行为。

然而,在调用自定义方法之前,编译器必须知道其存在。这是通过以下方式实现的

PSTAddMatcher(beSwitchedOn);
PSTAddMatcher(beValidWhenComparedTo:(id)object);

许可证

本项目可在 MIT 许可证下使用。有关详细信息,请参阅 LICENSE 文件。