# Testing with Components

[Component Framework][cfv2] is responsible for running units of sandboxed
software, or components, and facilitating their interaction.
Component Framework supports common developer needs for unit testing of
components, integration testing across components, and dependency injection for
capabilities exchanged between components.

You can find more information below:

*   [Test components](test_component.md): defining a component that
    implements a test, and running it in isolation from the rest of the system.
*   [Test Runner Framework](test_runner_framework.md): writing idiomatic tests
    in different languages and using common testing frameworks.
*   [Complex topologies and integration testing](integration_testing.md):
    testing interactions between multiple components.
*   [Realm Builder](realm_builder.md): library that facilitates integration
    testing of components.

[cfv2]: /docs/concepts/components/v2/introduction.md
