I am trying to test some exceptions in my project and one of the Exceptions I catch is SQlException.
It seems that you can\'t go new SqlException(         
        
This should work:
SqlConnection bogusConn = 
    new SqlConnection("Data Source=myServerAddress;Initial
    Catalog=myDataBase;User Id=myUsername;Password=myPassword;");
bogusConn.Open();
That takes a bit before it throws the exception, so I think this would work even faster:
SqlCommand bogusCommand = new SqlCommand();
bogusCommand.ExecuteScalar();
Code brought to you by Hacks-R-Us.
Update: nope, the second approach throws an ArgumentException, not a SqlException.
Update 2: this works much faster (the SqlException is thrown in less than a second):
SqlConnection bogusConn = new SqlConnection("Data Source=localhost;Initial
    Catalog=myDataBase;User Id=myUsername;Password=myPassword;Connection
    Timeout=1");
bogusConn.Open();
                                                                        I have a solution to this. I'm not sure whether it's genius or madness.
The following code will create a new SqlException:
public SqlException MakeSqlException() {
    SqlException exception = null;
    try {
        SqlConnection conn = new SqlConnection(@"Data Source=.;Database=GUARANTEED_TO_FAIL;Connection Timeout=1");
        conn.Open();
    } catch(SqlException ex) {
        exception = ex;
    }
    return(exception);
}
which you can then use like so (this example is using Moq)
mockSqlDataStore
    .Setup(x => x.ChangePassword(userId, It.IsAny<string>()))
    .Throws(MakeSqlException());
so that you can test your SqlException error handling in your repositories, handlers and controllers.
Now I need to go and lie down.