有沒有辦法來驗證爲特定的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方法是否正確調用。