You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
|
# 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());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|