QUnit.m 0.1.2

QUnit.m 0.1.2

测试已测试
语言语言 Obj-CObjective-C
许可证 MIT
发布上次发布2014年12月

未知的 维护。



QUnit.m 0.1.2

  • 作者
  • Kevin Malakoff

QUnit.m 将 QUnit.js 语法引入到 SenTestingKit,用于测试 Objective-C 项目。如果您试图将 JavaScript 库转移到 Objective-C 或需要一个更熟悉的测试语法,这将很有用。

我编写这个是为了帮助我把 Underscore.js 转移到 _.m,并使 Objective-C 更有脚本感觉 Subjective-Script,因此您将在那些项目的测试中找到一些很好的例子。

注意:这个库还处于早期阶段,所以请提交包含相应测试的 pull 请求以修复任何问题,并将功能集提升到 QUnit.js 的水平!

例子(部分来自 _.m 和 Subjective-Script)

equal

equal(AI(1,2,3).reverse().join(@","), @"3,2,1", @"reverse works");

strictEqual

strictEqual(_.chain(array).find(^B(N* n) { return n.I > 2; }).N, N.I(3), @"should return first found `value`");

deepEqual

_WrappedBlock wrapped = _.wrap(noop, ^A*(_WrappedBlock fn, id arg1, ...){ ARGS_AO(arguments, arg1); return A.newNSO(fn).concat(arguments); });
A* ret     = wrapped(AO(@"whats", @"your"), @"vector", @"victor", nil);
deepEqual(ret, AO(noop, AO(@"whats", @"your"), @"vector", @"victor"), @"deep wrapping");

notEqual

notEqual(AI(1,2,3).reverse().join(@","), @"1,2,3", @"reverse works");

ok

ok(OKV({@"int", N.I(1)}, {@"float", N.F(2.0)}).hasOwnProperty(@"int"), @"has an int");

raises

raises(^{ _.reduce(A.new, ^(N* memo, N* num, ...){ return memo; }, 0); }, @"TypeError", @"throws an error for empty arrays with no initial value");

asyncTest

asyncTest(^{
  __block BOOL called1 = false;
  SSTimeout* timeout1 = SS.setTimeout(^{ called1 = true; }, NSEC_PER_SEC*1);
  SS.clearTimeout(timeout1);

  __block BOOL called2 = false;
  SS.setTimeout(^{ called2 = true; start(); }, NSEC_PER_SEC*2);
});

用法

要运行示例项目;克隆仓库,然后从项目目录运行 pod install

要求

安装

作者

Kevin Malakoff, [email protected]

许可证

QUnit.m 在 MIT 许可证下可用。有关更多信息,请参阅 LICENSE 文件。