<!-- Do not edit this file. It is automatically generated by API Documenter. -->

[Home](./index.md) &gt; [@contract-case/case-definition-dsl](./case-definition-dsl.md)

## case-definition-dsl package

These are the [mock types](https://case.contract-testing.io/docs/reference/example-types)<!-- -->, test [equivalence matcher types](https://case.contract-testing.io/docs/reference/matchers) and the [state descriptors](https://case.contract-testing.io/docs/defining-contracts/state-definitions) for CaseExamples.

## Remarks

Use the mock definitions to describe the interactions that you want to test.

Use the state descriptions to describe the provider states (if any) that those tests require.

Use the Test Equivalence Matchers to generalise your tests, avoiding the need to depend on specific data during verification. It's not about defining the whole type system, the idea is that you are saying "any message that matches this Test Equivalence Matcher is considered covered by this test".

For more information, see [advice on relaxing tests](https://case.contract-testing.io/docs/defining-contracts/relaxing-tests) or [the full documentation](https://case.contract-testing.io)

## Namespaces

<table><thead><tr><th>

Namespace

</th><th>

Description

</th></tr></thead>
<tbody><tr><td>

[interactions](./case-definition-dsl.interactions.md)

</td><td>

</td></tr>
<tr><td>

[matchers](./case-definition-dsl.matchers.md)

</td><td>

</td></tr>
<tr><td>

[states](./case-definition-dsl.states.md)

</td><td>

</td></tr>
</tbody></table>
