Jasmine 如何测试定制的茉莉花匹配器?

Jasmine 如何测试定制的茉莉花匹配器?,jasmine,jasmine2.0,Jasmine,Jasmine2.0,我为Jasmine 2.x创建了一些自定义匹配器,我想为其创建规范。 大多数程序员通过在测试中应用匹配器来测试匹配器,以验证输出代码是否为正 例如,.toEqual“自定义”匹配器: it('应该测试两个对象是否相等',函数(){ expect({}).toEqual({});//通过 }); 但是,我还想测试匹配器是否存在失败的情况,并测试匹配器失败时生成的消息,例如,以这种方式 //茉莉花2.x 它('应该测试两个对象是否相等',函数(){ expect(matcher.compare(1

我为Jasmine 2.x创建了一些自定义匹配器,我想为其创建规范。 大多数程序员通过在测试中应用匹配器来测试匹配器,以验证输出代码是否为正

例如,
.toEqual
“自定义”匹配器:

it('应该测试两个对象是否相等',函数(){
expect({}).toEqual({});//通过
});
但是,我还想测试匹配器是否存在失败的情况,并测试匹配器失败时生成的消息,例如,以这种方式

//茉莉花2.x
它('应该测试两个对象是否相等',函数(){
expect(matcher.compare(1,1)).toEqual({
通过:是的,
消息:“预期1不等于1”//消息用于您使用时。不用于匹配器
});
expect(matcher.compare(1,2)).toEqual({
通过:错误,
消息:“预期1等于2”
});
});
代码示例中的变量
matcher
是我使用
jasmine.addMatchers({toEqual:matcher})
添加的matcher函数

由于我不想污染全局空间,我不知道如何在我的规格中提供匹配器。默认的jasmine匹配器位于
jasmine.matchers
中,它们通过一些
$j
对象添加到

因此,主要的问题实际上是:当我将自定义匹配器添加到Jasmine时,它们存储在哪里?我可以为规范检索它们吗?或者它们是否隐藏在闭包中

编辑
似乎
addMatchers
正在调用
env.addMatchers
,这会将匹配程序推送到
RunnablerResources[currentRunnable().id]。customMatchers
。RunnablerResources是一个闭包…

我看到您已经创建了一个用于测试自定义匹配器的框架:--看起来很有趣!是的。谢谢这个问题实际上发布在这里,因为我正在处理TestException:)。可惜没人接,但却给了我风滚草徽章。我想我必须对模块(ES6/requirejs)做些什么