有没有办法来验证为特定的GameObject调用UnityEngine.Object.Destroy()方法?由于UnityEngine.Object没有接口,我不能嘲笑它并检查Verifiable()。我正在使用C#,NUnit和Moq。如何模拟UnityEngine.Object.Destroy()调用?
例如:
UnityEngine.Object.Destroy(audioSource);
我发现的唯一的事情是这个How to Mock (with Moq) Unity methods但这不是我所需要的。
我明白任何帮助或有关此主题的更多信息!
有一件事我还做了是我提取呼叫从上方插入到调用接口并验证该方法被调用,但这种方式我只是问题转移到另一个层。
public interface IAudioSource
{
void DestroyUnityObject();
}
然后我可以在那里调用Unity Destroy方法。
public void DestroyUnityObject()
{
UnityEngine.Object.Destroy(mAudioSource);
}
并模拟上方法调用。
audioSourceMock.Setup(s => s.DestroyUnityObject()).Verifiable();
但正如我所说,这只会把问题放在其他地方,我仍然无法验证Unity方法是否正确调用。