ability to store single response or series of individual responses when you're testing your own classesthe setup(method can make your test methods easier to write you make one set of instances and attributes in setup(and then use these instances in all your test methods this is much easier than making new set of instances and attributes in each test method note when test case is runningpython prints one character for each unit test as it is completed passing test prints dota test that results in an error prints an eand test that results in failed assertion prints an this is why you'll see different number of dots and characters on the first line of output when you run your test cases if test case takes long time to run because it contains many unit testsyou can watch these results to get sense of how many tests are passing try it yourse lf - employeewrite class called employee the __init__(method should take in first namea last nameand an annual salaryand store each of these as attributes write method called give_raise(that adds $ to the annual salary by default but also accepts different raise amount write test case for employee write two test methodstest_give_ default_raise(and test_give_custom_raise(use the setup(method so you don' have to create new employee instance in each test method run your test caseand make sure both tests pass summary in this you learned to write tests for functions and classes using tools in the unittest module you learned to write class that inherits from unittest testcaseand you learned to write test methods that verify specific behaviors your functions and classes should exhibit you learned to use the setup(method to efficiently create instances and attributes from your classes that can be used in all the test methods for class testing is an important topic that many beginners don' learn you don' have to write tests for all the simple projects you try as beginner but as soon as you start to work on projects that involve significant development effortyou should test the critical behaviors of your functions and classes you'll be more confident that new work on your project won' break the parts that workand this will give you the freedom to make improvements to your code if you accidentally break existing functionalityyou'll know right awayso you can still fix the problem easily responding to failed test that you ran is much easier than responding to bug report from an unhappy user