Testing frameworks provide 3 basic features: a way to describe the tests you want to run, a way to execute those tests, a way to report the results of those tests. unit attempts to do all three of these.