0

例外をスローするコードの場合、期待値を無名関数でラップする必要があります。そうしないと、Mocha がキャッチする前に例外がスローされます。この StackOverflowの回答を参照してください。

しかし、ラッピングには副作用があるようです。
次のコードは、ラップされると動作が異なります。チャイの問題のようです。

chai = require 'chai'
expect = chai.expect

describe 'Weird', ->

  obj =
    name: 'kalle'

  it 'not wrapped', () ->
    expect(obj).to.have.property 'name', 'kalle'

  it 'wrapped', () ->
    expect(->obj).to.have.property 'name', 'kalle'

私の手作りの Javascript バージョン:

var expect = require('chai').expect;

describe('Weird', function() {
    obj = {name: 'kalle'};

    it('not wrapped', function() {
      expect(obj).to.have.property('name', 'kalle');
    });

    it('wrapped', function() {
        expect(function() {return obj}).to.have.property('name', 'kalle');
    });
});

失敗は次のようになります。
AssertionError: expected [Function] to have a property 'name' of 'kalle', but got ''

Weird
    ✓ not wrapped 
    1) wrapped


  1 passing (10ms)
  1 failing

  1) Weird wrapped:

      + expected - actual

      +kalle

ラッピングによって結果が異なるのはなぜですか?
前もって感謝します!

4

1 に答える 1