     asyncMethodWithAsyncCallback: (methodDone) ->
       block = (blockDone) ->
         process.nextTick =>
-          @_asyncMethodWithAsyncCallback = true
-          blockDone()
-
-      complete = (error) =>
-        console.log error
-        methodDone()
+          blockDone(@_asyncMethodWithAsyncCallback = @_expectedAsyncMethodWithAsyncCallback)
 
       @runCallbacks 'asyncMethodWithAsyncCallback', block, methodDone
 

      record._expectedBeforeAsyncMethodWithAsyncCallback = undefined
      record._expectedAfterAsyncMethodWithAsyncCallback = true
      record._expectedAfterAsyncMethodWithAsyncCallback2 = true
      record.asyncMethodWithAsyncCallback =>
        assert.equal record._beforeAsyncMethodWithAsyncCallback, undefined
        assert.equal record._asyncMethodWithAsyncCallback, true
        assert.equal record._afterAsyncMethodWithAsyncCallback, true
        # never reaches this one.
        assert.equal record._afterAsyncMethodWithAsyncCallback2, undefined
        done()

    test 'if async beforeCallback calls back with an error (or anything except null, false, or undefined), it should halt', (done) ->
      record._expectedBeforeAsyncMethodWithAsyncCallback = 'error!'
      record._expectedAfterAsyncMethodWithAsyncCallback = undefined
      record._expectedAsyncMethodWithAsyncCallback = false
      record.asyncMethodWithAsyncCallback (error) =>
        assert.equal error.message, 'error!'
        assert.equal record._beforeAsyncMethodWithAsyncCallback, 'error!'
        assert.equal record._asyncMethodWithAsyncCallback, undefined
        assert.equal record._afterAsyncMethodWithAsyncCallback, undefined
