Hello all welcome back to the next one. In this one, we will take a look at test Angie asserts. So test NZ gives us the power to take decisions in the middle of the test run with the help of asserts. With this, we can actually put various checkpoints in our test methods and asserts are the most popular and frequently used methods while creating any of the automation scripts. Whether we are doing Selenium WebDriver or REST API or some other automation there will be many situations where you would just like to verify something and to verify something, all you need to do is to put an assert statement on it. So we have discussed about creating an object of the class which is we are testing and calling the methods and we can get the results right.
Now what what do we do after getting the result we need to verify if the result is correct or not. And then we need to take a decision whether we need to pass the test case, or we need to fail the test case based on the output, right. So what I've done here is I have added couple of more methods. So this was the original one that we had for some numbers, I added one more for add strings. It takes two strings and returns a plus space. So pay attention plus b, it returns this.
And then this method is just get array so it doesn't take anything I'm just returning one array and the array is integer array with values 123. All we want to pay attention and importance is to how we call it our basically how we write our test and the test method. So instead of the main class, right, so let's come up here. This was the method that we created previously also. Now I created a new class. named it as test Angie underscore asserts, I always suggest you guys to have the first letter of the word capital in Java.
Whenever you are creating a Java class, please notice it. So that's what I'm doing. And to not name a class like test, Angie, because destiny is already a library existing right? And there might be clashes and conflict. So always give your own names. What I do always is test and G and then append it with something.
So it's different from the original one. Now, what we can do here is we have the result here, just take a look at the first method, test some. So we're just printing out some value and then creating an object and calling the method some numbers. So this is our result. Now what we want to do here is we want to test if it's correct or not. We can say as DOD And you can see that it will show you where it's coming from.
So if you have j unit library added to your class path, you will see an aside from J unit also. So that's where you need to pay attention to pick the one from or dot test Angie. This is what we are learning or dot test NZ. So in r dot test Angie also we have lot of assets. So basically, it's most of them are just the same method you will see assert equals, there are just different overloads This is for Boolean, this is for by character collection integer, it rabl long object short string, so these are all the overloads for the same method, all our assert equals, then we will see assert not not equals is there assert equals deep assert no order assert false. assert not equals and then they should be assert true So, I said not no sir not same.
So basically more assert true. So there are just these few only, but there are different overloads for different data type. Mostly what we use here is assert true assert false, and assert equals. These are the two most used ones. So, let me just open one document also that I created. So, these are the most commonly used ones and a start crew basically this one, this statement fails the test and stops the execution of the test if the actual output is false, because we are asserting true here, and if the output is false, then it's gonna fail that test case.
And whenever a test case fails, it will stop the execution of that particular test method. assert assert false works opposite to assert true obviously So since we're asserting false and the output is True, it will fail the test case. So that's pretty obvious. And assert equals it's also works the same way. It will also stop the execution if the value is not equal, and it will continue the execution if the value is equal. And we'll see that in a minute.
So now I'm going to assert dot assert, equals. So what we'll do here is we'll find a one for integer so this is the one for integer and hit enter. As soon as I do that, I see a new import statement added here. You guys can pay attention up there. So this thing is import or dot test and G dot assert. This thing is added here by default automatically.
Now here, we want to give the actual and expected values so that this statement can verify things for us. So, the actual value is the result that we are getting from the method This is the actual actual means, what actually is coming from the test method or output or what or what really exists somewhere. If you are doing it with Selenium WebDriver actual means whatever we are seeing on the website or web application, if you are doing on REST API, it means what we are getting it from the REST API. So, actual means that an expected is what we expect. So that we can verify actual versus expected. So, in this case, if I pass one comma two to some numbers, I expect the value three to be output, right?
So, this is gonna assert it. The next thing is, again, we created an object and I have an expected string here and saying hello world. What we're going to do here is We're going to create one more method, sorry, one more variable called string result. And here we're going to call the method OBJ dot add strength. And for both the variables, sorry, both arguments, we're going to pass some value. So hello.
And here we're gonna provide world. Right? So if we provide these values, then it means we expect the output string to be Hello Space. While you can notice there is a space because the Add string method does that and we saw that initially, right? So that's what we expect. Now to assert something.
What we can do here is we can do assert dot assert, equals and we can pick the overload off string. And the first one is going to be the actual The second one is going to be the expected. And that's our second test methods. So what we're doing is we're taking a look at multiple data types in a third. So we have looked at integer, we have looked at string. And other one, we'll look at the data type, which is arrays, so it's kind of a good data structure.
So we saw three different types. And you can practice some more also, but it's the same method. And in this last one, we can do n. So this is the, this is the one where we will get the array right. So this method will just return the array and the arrays 123. And it's an integer type. So since it's integer type, we will define an array called int, array result, and I'm just giving the result name because it's kind of meaningful.
We're getting the result of the method, but you can use any name here and OBJ dot Get a, we call this method and after we call this method, we need to just assert it. So assert dot, I can maximize this. Let's bring it up in so you guys can see it easily assert dot assert equals. And here I don't say array type here in LA there is nothing so we can pick the one for object array. You can see this one object and square brackets and now you will see that we are not getting our dot test Angie assert the reason is, because we already have an import statement here. That's why it's not showing.
So we can pick this one. And the first one is obviously the result. And the second one is our expected array. So now we have three methods. So We can run this test in G class and we can see the output. I saved the class, and right click run as test in G test.
And it says running TEST TEST array, then it ran the test for test strings, then it ran for test some. So basically test array ran first because alphabetical order a appears before both the s. And all the tests are successful. It ran three tests, no failures, and we can see up here that all the three test methods executed properly. So it's all good. We can actually put here like slash end which is for next line. So if I do this, I'll see a little better clean output.
So it's gonna add one line before the print statement. So Right click run as test in G test. And it ran all these tests, right? So all the tests are run, everything is properly run and all fine. Now let's see what happens if something fails. Let me just actually, let's take a look at the array example.
Because this is the kind of a little complex out of all these three. So I expected array, I'm going to add one more integer called four. And the actual is going to be 123. But I'm expecting 1234. So definitely this test should be failed, right? So let me add one more statement here.
Running test, or maybe I would say, end end test. So let me just show you first. So by the proper running, which is it's still successful. So let me run it again. And it's it runs everything. So running TEST TEST array and then it prints one more statement and test test error because we added one more System dot out dot print ln and remaining are all same right?
Now I'm going to fail this test. So add four and right click Save the file right click, run as test and you test and you can see some failures are there. And what is the result right now it says running TEST TEST array. And we don't see an new statement here which was the end TEST TEST a write directly went to writing test test strength and then running test test some and it says testing says passed some is passed and tested is fail. And why it failed. It says expected for but found three.
The reason is we are expecting something And it did not have those things right. So that's why it failed. But, the most important thing is this line also then what happens is whenever a test case or test method fails a test assert statement, the further lines are not executed and this method is done it is marked as failed and then test and they will move to execute the next method. So, that's why test strings are is executed and then test some is executed. So, other methods are executed fine. But in this method, if something fails, some line fails, the following lines are not executed.
And you can see it in the console here and here. If we see, we can see test races fail and we can see the exception here also and test strings and test some is successful. So, basically that's about it. That's these are assets. You can play around with them. Look at the code files.
And let me know if any questions but I think this is pretty good. So practice as much as possible and also in the next lecture. Thanks for attending this one.