JUnit is a unit testing framework for Java programming language. It plays a crucial role test-driven development, and is a family of unit testing frameworks collectively known as xUnit.
TestNG is a testing framework inspired from JUnit and NUnit, but introducing some new functionalities that make it more powerful and easier to use.
Mocking is a way to test the functionality of a class in isolation. Mocking does not require a database connection or properties file read or file server read to test a functionality. Mock objects do the mocking of the real service.
JUnit allows the developer to incrementally build test suites to measure progress and detect unintended side effects. Tests can be run continuously. Using TestNG we can generate a proper report, and you can easily come to know how many test cases are passed, failed and skipped.
Mockito is used to mock interfaces so that a dummy functionality can be added to a mock interface that can be used in unit testing.