using System.Collections; using BracerLib.Utility.Testing; using Moq; using NUnit.Framework; using UnityEngine; namespace BracerLib.Tests.Objects { public interface ITester { void Test(); } public class Tester : ITester { public void Test() {} } public class MockComponent : MonoBehaviour { private ITester tester; public void DoTest() { tester.Test(); } } public class ObjectMockTests : TestBase { private MockComponent mockComponent; private Mock testerMock; protected override IEnumerator UnityOneTimeSetUp() { testerMock = new Mock(); var go = new GameObject("mock test obj"); mockComponent = go.AddComponent(); RegisterOneTimeTestObject(go); SetReflectedValue(mockComponent, "tester", testerMock.Object); yield return null; } [Test] public void TestMock() { testerMock.Setup(x => x.Test()); mockComponent.DoTest(); testerMock.Verify(x => x.Test(), Times.Once); } } }