AllocatingGCMemoryConstraint

class in UnityEngine.TestTools.Constraints

切换到手册

描述

一个 NUnit 测试约束类,用于测试给定的代码块是否进行任何 GC 分配。

将此类与 NUnit 的 Assert.That() 方法一起使用,可进行与代码的 GC 行为相关的断言。该约束会执行您提供的委托,并检查其是否已导致分配任何 GC 内存。如果分配了任何 GC 内存,则约束通过;否则,约束未通过。

通常,应否定此约束以确保您的委托不分配任何 GC 内存。使用 Is 类很容易做到这一点:

using NUnit.Framework;
using UnityEngine.TestTools.Constraints;
using Is = UnityEngine.TestTools.Constraints.Is;

public class MyTestClass { [Test] public void SettingAVariableDoesNotAllocate() { Assert.That(() => { int a = 0; a = 1; }, Is.Not.AllocatingGCMemory()); } }