Automated tests can be broken up into three general areas, or types of tests—unit tests, integration tests, and acceptance tests. We can also describe these tests as either black-box or white-box tests. White-box tests are tests where the internal logic or structure of the code under test is known to the tester. Black-box tests, on the other hand, are tests where the internal design and or logic are not known to the tester.
Unit, integration, and acceptance tests
Unit tests
A unit test is typically a white-box test where all of the external interfaces to a block of code are mocked or stubbed out. If we are testing some code that does an asynchronous call to load a block of JSON, for example, unit testing this code...