Geeks With Blogs
Abhishek Anand Bits & Bytes about .net technology framework.

One common oversight we have encountered while working with developers is the mix up of the [TestInitialize] and [ClassInitialize] Attributes. When using these methods, be conscience of their differences. The Class Initialize attribute executes the decorated method once before the first test in the class is run, while the Test Initialize attribute executes before each test is run. There are different scenarios for when to use each, and putting code incorrectly in one or the other can cause unexpected behavior.


[ClassInitialize] annotated methods should be used to setup the state of the test classThis includes variables that are shared in all tests, but the values of which either does not change or the changing of their values will not impact a test.


[TestInitialize] annotated methods should be used to revert the state of variables in which every test depends upon.  


When using these attributes, always make sure to run the entire set of unit tests as a group and not just individually. This will make sure that the test class has been setup properly.  

Posted on Monday, November 18, 2013 6:10 PM .net , unit testing | Back to top

Comments on this post: Test Initialize vs. Class Initialize

# re: Test Initialize vs. Class Initialize
Requesting Gravatar...

Good article and also helpful article

thank you
Left by kakoli on Nov 20, 2013 8:20 PM

# re: Test Initialize vs. Class Initialize
Requesting Gravatar...
Thanks for explaining the difference :)
Left by Ahetejazahmad Khan on Dec 26, 2014 3:12 PM

Your comment:
 (will show your gravatar)

Copyright © Abhishek Anand | Powered by: