← Back to team overview

nunit-core team mailing list archive

[Bug 958770] Re: Add Assert.Throws<TEx>( Func<object> ) for properties testing

 

** Changed in: nunitv2
       Status: New => Triaged

** Changed in: nunitv2
   Importance: Undecided => Wishlist

-- 
You received this bug notification because you are a member of NUnit
Developers, which is subscribed to NUnit V2.
https://bugs.launchpad.net/bugs/958770

Title:
  Add Assert.Throws<TEx>( Func<object> ) for properties testing

Status in NUnit V2 Test Framework:
  Triaged

Bug description:
  Sometimes an object is in a state that causes reading its properties
  to throw exception. For example, an object might be disposed, and will
  throw InvalidOperationException().

  To test for such behavior, one would write

  
      var obj = CreateDisposedObject();
  #pragma warning disable 168
      // Assuming Name cannot be accessed after disposing
      Assert.Throws<InvalidOperationException>(() => { var v = obj.Name; });
  #pragma warning restore 168

  
  Having pragmas and a temp variable is clearly inconvenient, and instead can be remedied with this overload:

  
      public static T Throws<T>(Func<object> code) where T : Exception
      {
          return Assert.Throws<T>(() => { var v = code(); });
      }

  As a result, our code can now be written as:

      var obj = CreateDisposedObject();
      Assert.Throws<InvalidOperationException>(() => obj.Name);

  
  Much more concise and self evident.

  Thank you!

To manage notifications about this bug go to:
https://bugs.launchpad.net/nunitv2/+bug/958770/+subscriptions


References