In reply to Chakrakirthi:
An immediate assertion is much more powerful in an overall coverage metric driven closure methodology. You can easily collect coverage for any assertion passing or failing, and link that information back to a test plan to know how much your testing has covered.
Also, assertion are easy to control (i.e. turn off) from a global perspective for situations where the error can be waived.
And immediate assertion can only contain a Boolean expression. Do not confuse it with a concurrent assertion embedded in procedural code (slightly different syntax).