title: Mocha / Chai expect.to.throw not catching thrown errors
body: <p>I'm having issues getting Chai's <code>expect.to.throw</code> to work in a test for my node.js app. The test keeps failing on the thrown error, but If I wrap the test case in try and catch and assert on the caught error, it works. </p>
  
  <p>Does <code>expect.to.throw</code> not work like I think it should or something?</p>
  
  <pre><code>it('should throw an error if you try to get an undefined property', function (done) {
    var params = { a: 'test', b: 'test', c: 'test' };
    var model = new TestModel(MOCK_REQUEST, params);
  
    // neither of these work
    expect(model.get('z')).to.throw('Property does not exist in model schema.');
    expect(model.get('z')).to.throw(new Error('Property does not exist in model schema.'));
  
    // this works
    try { 
      model.get('z'); 
    }
    catch(err) {
      expect(err).to.eql(new Error('Property does not exist in model schema.'));
    }
  
    done();
  });
  </code></pre>
  
  <p>The failure:</p>
  
  <pre class="lang-none prettyprint-override"><code>19 passing (25ms)
    1 failing
  
    1) Model Base should throw an error if you try to get an undefined property:
       Error: Property does not exist in model schema.
  </code></pre>