如何在量角器/茉莉花中使用自定义匹配器返回`false`?

时间:2016-04-30 06:20:22

标签: jasmine protractor

我正在使用量角器3.0.0和jasmine 1.3.1

我正在尝试添加自定义匹配器,但似乎我只能在它返回true时使用它,否则我的测试会卡住。

这是我的自定义匹配器

 toBecomeTrue: function(){
     return browser.sleep(0).then(function(){
         return false;
      });
 },

如您所见,我希望测试失败。

但是,当我使用它时

it('should ask an SO question', function(){
    browser.get('/');
    expect($$('div')).toBecomeTrue();
});

测试卡住了..

我的直觉是,因为我们正在处理承诺,因为我正在返回虚假......出现问题......

所以我反而抛出错误..但这不允许我使用not。 :(

但是,我似乎无法在任何地方找到它,我觉得我做错了。

以下是我看到并试过的几个实现示例,但无法使其正常工作

关于茉莉花版本,我为什么还要查看1.3的文档,我有一个不同的问题...希望尽快解决。

所以回顾一下:

  • 为什么我的自定义匹配器在跟踪在线发现的文档时会卡住?
  • 抛出一个例外是一个合理的解决方案,还是一个不受欢迎的黑客攻击?

1 个答案:

答案 0 :(得分:1)

Jamine 1.3 is not compatible with protractor version of 3.0.0,来自GitHub:

  

我们正在通过一些重大变化发布3.0版本。总之 - 删除了Jasmine 1.3,现在只支持Jasmine 2,删除旧的Node.JS支持,现在需要明确要求插件。详情如下。