32 lines
1.3 KiB
Markdown
32 lines
1.3 KiB
Markdown
|
# Custom constraints
|
|||
|
|
|||
|
`NUnit` allows you to write test assertions in a more descriptive and human readable way using the [Assert.That](https://github.com/nunit/docs/wiki/Assertions) mechanism, where the first parameter is an object under test and the second parameter describes conditions that the object has to meet.
|
|||
|
|
|||
|
## Is
|
|||
|
|
|||
|
We’ve extended `NUnit` API with a custom constraint type and declared an overlay `Is` class. To resolve ambiguity between the original implementation and the custom one you must explicitly declare it with a using statement or via addressing through the full type name `UnityEngine.TestTools.Constraints.Is`.
|
|||
|
|
|||
|
### Static Methods
|
|||
|
|
|||
|
| Syntax | Description |
|
|||
|
| -------------------- | ------------------------------------------------------------ |
|
|||
|
| `AllocatingGCMemory` | A constraint type that invokes the delegate you provide as the parameter of `Assert.That` and checks whether it causes any GC memory allocations. It passes if any GC memory is allocated and fails if not. |
|
|||
|
|
|||
|
## Example
|
|||
|
|
|||
|
```c#
|
|||
|
using Is = UnityEngine.TestTools.Constraints.Is;
|
|||
|
|
|||
|
class MyTestClass
|
|||
|
{
|
|||
|
[Test]
|
|||
|
public void MyTest()
|
|||
|
{
|
|||
|
Assert.That(() => {
|
|||
|
var i = new int[500];
|
|||
|
}, Is.AllocatingGCMemory());
|
|||
|
}
|
|||
|
}
|
|||
|
```
|
|||
|
|