This is a collection of a Test controller and a form. The form takes the name of the controller and the function name which has to be tested (along with arguments if required). The Test controller then calls that controller function. So we can call any controller and any function of a controller in our application feeding the function any arguments that we want. This way we can test all of our “Use cases” with different data values. In future I will improve this further.