chai-string

一般的な文字列比較の主張を支援するための chai の Matchers

Build Status Downloads

使用方法

ブラウザ

<script src="chai.js"></script>
<script src="chai-string.js"></script>

サーバー

var chai = require('chai');
chai.use(require('chai-string'));

アサーション

  • startsWith / startWith
  • endsWith / endWith
  • equalIgnoreCase
  • equalIgnoreSpaces
  • containIgnoreSpaces
  • singleLine
  • reverseOf
  • palindrome
  • entriesCount
  • indexOf

すべてのアサーションは BDD と TDD の両方の構文で定義されていますが、一部のエイリアスが存在するため、どちらのスタイルでもアサーションが見栄えがします。

var d1 = 'abcdef',
    d2 = 'abc';

d1.should.startWith.d2
expect(d1).to.startsWith(d2)
assert.startsWith(d1, d2)

startsWith / startWith

assert.startsWith('abcdef', 'abc');
expect('abcdef').to.startsWith('abc');
'abcdef'.should.startWith('abc');

endsWith / endWith

assert.endsWith('abcdef', 'def');
expect('abcdef').to.endsWith('def');
'abcdef'.should.endWith('def');

equalIgnoreCase

assert.equalIgnoreCase('abcdef', 'AbCdEf');
expect('abcdef').to.equalIgnoreCase('AbCdEf');

equalIgnoreSpaces

assert.equalIgnoreSpaces('abcdef', 'a\nb\tc\r d  ef');
expect('abcdef').to.equalIgnoreSpaces('a\nb\tc\r d  ef');

containIgnoreSpaces

assert.containIgnoreSpaces('abcdefgh', 'a\nb\tc\r d  ef');
expect('abcdefgh').to.containIgnoreSpaces('a\nb\tc\r d  ef');

containIgnoreCase

assert.containIgnoreCase('abcdefgh', 'AbcDefGH'); 
expect('abcdefgh').to.containIgnoreCase('AbcDefGH');
'abcdef'.should.containIgnoreCase('cDe');

singleLine

assert.singleLine('abcdef');
expect('abcdef').to.be.singleLine();

reverseOf

assert.reverseOf('abcdef', 'fedcba');
expect('abcdef').to.be.reverseOf('fedcba');

palindrome

assert.palindrome('abccba');
expect('abccba').to.be.palindrome();

entriesCount

assert.entriesCount('abcabd', 'ab', 2);
expect('abcabd').to.have.entriesCount('ab', 2);

indexOf

assert.indexOf('abcabd', 'ab', 0);
expect('abcabd').to.have.indexOf('ab', 0);

謝辞

chai プラグインの構造とテスト方法に関するアイデアを提供してくれた chai-datetime モジュールに感謝します。