一个 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()); } }