jasmine-sinon, Sinon.JS的jasmine 匹配器

分享于 

5分钟阅读

GitHub

  繁體 雙語
Jasmine matchers for Sinon.JS
  • 源代码名称:jasmine-sinon
  • 源代码网址:http://www.github.com/froots/jasmine-sinon
  • jasmine-sinon源代码文档
  • jasmine-sinon源代码下载
  • Git URL:
    git://www.github.com/froots/jasmine-sinon.git
    Git Clone代码到本地:
    git clone http://www.github.com/froots/jasmine-sinon
    Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/froots/jasmine-sinon
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    
    用于 Sinon.JS的 jasmine-匹配器

    这款软件提供了一组自定义匹配器,用于使用 Sinon.JS spying spying spying和 jasmine BDD的library。

    替代:

    
    expect(mySinonSpy.calledWith('foo')).toBeTruthy();
    
    
    
    

    你可以说:

    
    expect(mySinonSpy).toHaveBeenCalledWith('foo');
    
    
    
    

    在你的purdy规范中不仅可以看到 nicerer,而且还可以在你的jasmine 规范中获得更多描述性失败。

    替代:

    
    Expected false to be truthy.
    
    
    
    

    你得到了:

    
    Expected spy"mySpy" to have been called with"foo".
    
    
    
    

    jasmine-1.x/2.x-兼容性

    如果你使用 jasmine 1. x,,请使用最新 0.3. x 版本。 对于 jasmine 2,请使用 0.4或者更高版本。

    安装

    直接包括

    在 jasmine 测试 runner 文件中只包含 lib/jasmine-sinon.js。 不要忘记包括 Sinon.JS

    带有jasmine宝石的

    将它添加到 jasmine.yml 中。不要忘记包含 Sinon.JS

    node.js/npm

    npm install jasmine-sinon --save-dev

    然后,在你的jasmine 规范中:

    var sinon =require('sinon');require('jasmine-sinon');

    使用 Bower

    bower install jasmine-sinon --save-dev

    然后,在测试 runner 中包含 components/jasmine-sinon/index.js

    Sinon.JS 匹配器

    通常,你应该能够将 Sinon spy/stub/mock API方法转换为 jasmine Sinon 匹配器,方法是在方法名称的前面 prepending toHaveBeen。 例如 Sinon.JS spy 方法 called 成为 toHaveBeenCalled。 这里规则有一个或者两个例外,因此下面给出了匹配器的完整列表。

    Sinon.JS 属性/方法 jasmine-sinon匹配器
    calledtoHaveBeenCalled()
    calledOncetoHaveBeenCalledOnce()
    calledTwicetoHaveBeenCalledTwice()
    calledThricetoHaveBeenCalledThrice()
    calledBefore()toHaveBeenCalledBefore()
    calledAfter()toHaveBeenCalledAfter()
    calledOn()toHaveBeenCalledOn()
    alwaysCalledOn()toHaveBeenAlwaysCalledOn()
    calledWith()toHaveBeenCalledWith()
    alwaysCalledWith()toHaveBeenAlwaysCalledWith()
    calledWithExactly()toHaveBeenCalledWithExactly()
    alwaysCalledWithExactly()toHaveBeenAlwaysCalledWithExactly()
    calledWithMatch()toHaveBeenCalledWithMatch()
    alwaysCalledWithMatch()toHaveBeenAlwaysCalledWithMatch()
    calledWithNewtoHaveBeenCalledWithNew()>=v0.4
    neverCalledWithtoHaveBeenNeverCalledWith()>=v0.4
    neverCalledWithMatch()toHaveBeenNeverCalledWithMatch()>=v0.4
    threw()toHaveThrown()
    alwaysThrew()toHaveAlwaysThrown()
    returned()toHaveReturned()
    alwaysReturned()toHaveAlwaysReturned()

    这些匹配器将处理间谍程序。单个 spy 调用。存根和模拟。

    你可以在你的Sinon间谍旁边用 jasmine 间谍。 你会发现你使用的是 jasmine,并使用合适的匹配器。

    你还可以在期望中使用 jasmine 匹配器 any()objectContaining()的模糊,e.g.

    expect(spy).toHaveBeenCalledWith(jasmine.any(Date));expect(spy).toHaveBeenCalledWith(jasmine.objectContaining({name:'froots'}))

    贡献者

    感谢:

    • 异常匹配器的@aelesbao
    • @theinterned,er,匹配匹配器
    • 用于优雅的spy 匹配器的@milichev
    • 用于 jasmine 模糊匹配器支持的@reinseth
    • 用于初始 jasmine 2.0支持工作的@stoodder

    MAT  SIN  Jasmin  Jasmine  匹配器  matchers  
    相关文章