function assert(matcher, args, negate) {
        var expected = toArray(args, 1)
        matcher.negate = negate  
        var assertion = new JSpec.Assertion(matcher, actual, expected, negate)
        hook('beforeAssertion', assertion)
        if (matcher.defer) assertion.run()
        else JSpec.currentSpec.assertions.push(assertion.run().report()), hook('afterAssertion', assertion)
        return assertion.result
      }
Perform an assertion.

  expect(true).to('be', true)
  expect('foo').not_to('include', 'bar')
  expect([1, [2]]).to('include', 1, [2])

@param  {mixed} actual
@return {hash}
@api public