NHamcrest is a C# port of Hamcrest, a popular matching library. I recently added support for Assert.Throws:
[Test] public void Throws() { Assert.That(() => { throw new ArgumentNullException(); }, Throws.An<ArgumentNullException>()); // with a predicate Assert.That(() => { throw new ArgumentNullException("message", new Exception()); }, Throws.An<ArgumentNullException>() .With(e => e.Message == "message" && e.InnerException.GetType() == typeof(Exception))); }