docs: function(expectedError, method, message){
          YUITest.Assert._increment();
          var error = false;
  
          try {
              method();
          } catch (thrown) {
  
              //check to see what type of data we have
              if (typeof expectedError == "string"){
  
                  //if it's a string, check the error message
                  if (thrown.message != expectedError){
                      error = true;
                  }
              } else if (typeof expectedError == "function"){
  
                  //if it's a function, see if the error is an instance of it
                  if (!(thrown instanceof expectedError)){
                      error = true;
                  }
  
              } else if (typeof expectedError == "object" && expectedError !== null){
  
                  //if it's an object, check the instance and message
                  if (!(thrown instanceof expectedError.constructor) ||
                          thrown.message != expectedError.message){
                      error = true;
                  }
  
              } else { //if it gets here, the argument could be wrong
                  error = true;
              }
  
              if (error){
                  throw new YUITest.UnexpectedError(thrown);
              } else {
                  return;
              }
          }
  
          //if it reaches here, the error wasn't thrown, which is a bad thing
          throw new YUITest.AssertionError(YUITest.Assert._formatMessage(message, "Error should have been thrown."));
      }