Win a copy of The Way of the Web Tester: A Beginner's Guide to Automating Tests this week in the Testing forum!

# assertion related(mock)

Arjun Srivastava
Ranch Hand
Posts: 432

assume assertion is on
output: assert is on

if at line 3(the expression on assert statement) i is returned as false,then why line4 get printed?
why line 2 matters here(which makes i true) regardless of line3(which returns false)?

Ankit Garg
Sheriff
Posts: 9543
33
Arjun please tell the source of the question.

I don't really understand the question. Line 2 makes the value of i as true, so there will be no assertion error and line 3 will not be executed. This is why line 4 is executed...

Arjun Srivastava
Ranch Hand
Posts: 432
Ankit Garg wrote:Arjun please tell the source of the question
.

i got this question from one of the page on facebook(whiz-lab).
I don't really understand the question. Line 2 makes the value of i as true, so there will be no assertion error and line 3 will not be executed. This is why line 4 is executed..

that means if line 2 is true then ,line 3 will not be exceuted
and if line 2 is false offcourse assertionerror will be thrown.
then what is the use of using line 3 for returning any value in assertion(assumption)

Ankit Garg
Sheriff
Posts: 9543
33
hen what is the use of using line 3 for returning any value in assertion

If you know about assertions, you should know the use of line 3. Look at any assertion tutorial like this...

Trivikram Kamat
Ranch Hand
Posts: 155
The assertion statement has two forms.

The simple form is:

which is equivalent to:

The augmented form is:

which is equivalent to:

So, you can see that in augmented form if Expression1 is true, Expression2 is never called.
That is why, statement on Line 3 (which is part of Line 2 actually) is not called - if assertions are enabled in the code given in the question.

Arjun Srivastava
Ranch Hand
Posts: 432