在测试里面可以做一些断言,比如断言两个值相等,或者不相等 .. 断言一个值是 true 或者 false ... 是对象,或者不是对象 .. 断言如果成立,测试就通过,如果不成立,测试就失败 ... 断言就是确定一下我们写的代码会按照我们的期待被执行 ...
做这些断言可以根据不同的情况使用不同的断言方法 .. adonis 框架里面用了 chaijs 里的 assert ... 具体可以使用的断言方法你可以参数 chaijs .. assert 接口的文档 ..
打开 unit 下面的这个演示测试 ... 在这个测试套件里面可以再添加一个测试 .. 用一下 test 这个方法 .. 先是测试的标题 ... demo test: equal .. 一个回调 .. 把 context 参数里的 assert 解构出来 ..
然后用一下 assert 上面提供的断言方法去做一些断言 .. 比如先添加一个 data ... 假设它的值是 hello ..
下面用一下 assert.equal ... 断言 data 的值,等于 hello ..
回到命令行 ... 执行一下 adonis test ... 运行一下测试 ... 会显示应用里的两个测试都通过了 ..
这里再修改一下 .. 断言 data 的值,等于 您好 ... 再运行一下测试 ...
这回 demo test: equal 这个测试就失败了 .. 提示 expected hello to equal 您好 ..
失败的时候可以添加一条信息 ... 这个信息可以作为 equal 的第三个参数 .. 添加一个 equal test ...
再运行一下测试 .. 失败的时候,在 equal 里面设置的错误信息会在这里显示 ..
回过来,再把 您好,换成 hello ...
断言方法一般有个正面方法,还有个反面的方法 .. 比如跟 equal 这个断言方法对应的反面方法就是 notEqual ,表示不相等 ...
复制一份 .. 测试是 demo test: notEqual ... 用一下 assert 上的 notEqual 这个断言方法 .. 断言 data 的值不等于 hello ..
回到命令行,执行一下测试 ...
提示 notEqual 这个测试失败了 .. 提示说 expected 'hello' to not equal 'hello' ..
回来修改一下 ... 断言 data 的值,与 您好 不相等 ...
再执行一下测试 ... 这回测试就会通过了 ... 因为 data 的值跟您好的确是不相等的 ...
isAbove
断言一个值在另一个值之上 .. 可以使用 isAbove ... 再添加一个测试 ... demo test .. isAbove ... 用一下 isAbove 这个断言方法 ..
把 data 的值换成一个数字 .. 比如数字 3 .. 断言的是 data 的值在 5 之上 ..
在命令行下面,再执行一下测试 ... 最后添加的这条测试没有通过 .. 提示 expected 3 to be above 5 ... 期待 3 要在 5 之上 ..
修改一下 ... 把 data 的值换成 6 ... 再运行一下测试 .. 测试通过 ... 表示测试里做的断言都是成立的 ...