Interested in a
Personal Demo ?


Name* :
Please Enter your Name
Company E–Mail* :
Please Enter a Valid Email

Testimonials


With Typemock we don’t have to rewrite product code specifically for testing purposes. This not only saves time, it also allows us to test components of our product code that cannot be readily changed, enabling comprehensive testing and overall high quality.
Travis Illig, Senior Software Engineer, Digital Channels, Fiserv
Success stories

PurchaseOptions


US Toll Free
866–895–4680
Outside US
+44–203–150–0293
Get your printable quote
Buy online

 

Always Assert Something

 
a unit test is a way to check  something in the application. The most common way is to use the "Assert.xx" methods that are found in all common unit testing frameworks.
Without an assert your test is only going through the application's code, but is not really checking that something is true or false.
 

Possible types of asserts include:

  • [ExpectedException(...)] attribute on top of the test method
  • Assert.Throws(..)
  • Assert.IsTrue, IsFalse etc..
  • Verification against Isolation frameworks (Isolate.Verify, mock.AssertWasCalled, mock.Verify etc.)

What if I'm just testing that no exception is being thrown?

the only time it makes sense to not have an assert in your test is when you are testing that doing a specific action in the application under test does not throw an exception. in that case - your test name should point out that you are checking that no exception is being thrown - otherwise, whoever reads your test will not understand what is the expected behavior of the system under test.
Examples of such test names:
  1. Login_Called_DoesNotThrowException()
  2. Can_Call_Login_WithouException()
  3. LoginShouldNotThrowException()
  4. NoExcpeptionThrownFromLogin()

Just make sure that you mention that an exception is not thrown, for the sake of your test readers.