What is the difference between API Testing and Unit Testing?
Unit testing is done by the development team to make sure that a particular unit of software functions as required; since it is not black-box testing
The job of the API tester is to test the software knowing only what a user is likely to know. API testing also tests the unit as part of a system, while unit testing typically tests the unit in relative isolation from the rest of the system. It is black box testing method.
>> API Testing :
API tests are executed only after the build is ready .
API testing must portray the system as a whole as it is the user interface that an end user will interact with.
>> Unit Testing :
Unit test code or test script is written by the developers(automation testing).
A major emphasis is on the fact whether each unit or module works perfectly fine in isolation.That is dependency should be least to ensure a robust module design.
An API can be thought is as a library that is often included into a code to reflect a certain type of behaviour.For example ,we can use a Java API in Scala as they share compatible bytecode.When one is involved in API testing,the motive is to figure out whether we are getting a logically correct result.
A unit test on the contrary is a way to ensure that a specific functionality is contributing to the overall system functionality.
Unit testing is almost always an activity that is owned by the development team; developers are expected to build unit tests for each of their code modules and to ensure that each module passes its unit tests before the code is included in a build. This practice makes a lot of sense because it helps the developers solidify their code. Often times, this effort requires debugging and bug-fixing in real-time.
API testing, on the other hand, is typically an activity owned by the QA team, a staff other than the author of the code. API tests are often run after the build has been created, and it is common that the authors of the tests do not have access to the source code; they are essentially creating black box tests against an API rather than the traditional GUI.
API tests must be far more extensive than unit tests, and take into consideration the sorts of ‘scenarios’ that the API will be used for, which typically involve interactions between several different modules within the application.