Integration Tests

An integration test is any test that cannot be described as unit test.

An integration test might:

Use system dependent values that change dynamically (such as DateTime.Now or Environment.MachineName)

Create objects that cannot be controlled in a reliable manner. For example, a test can have a little control over threads or generators of random numbers.

Make calls to external systems or have dependencies on a local machine (for example, when a test calls a Web service or uses local configuration files).

Test multiple scenarios as part of a single test case (for example, when a test checks database integrity, system configuration, protocols, and system logic at once).

Therefore, integration tests will most likely:

Significantly slower than unit tests

Require significantly amount to run completely

Make the collection and analysis of test results more problematic