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