Unit Test v/s PUT

A unit test is a method without parameters that represents a test case and typically executes a method of a class-under-test with fixed inputs and verifies that it returns the expected result.

A parameterized unit test (PUT) is simply a method that takes parameters, calls the code under test, and states assertions.

Parameterized unit tests separate two concerns:

1) They specify the external behavior of the involved methods for all test arguments.

2) Test cases can be re-obtained as traditional closed unit tests by instantiating the parameterized unit tests.