首页 > 解决方案 > 使用 NUnit 对单例进行 Unity 测试

问题描述

我有一个 Unity 项目,它应该创建一个 HoloLens 应用程序。现在我想用 NUnit 在 Unity 中测试我的一些代码。我创建了一些 PlayMode 测试

public class Test
{
    private GameObject empty;

    [SetUp]
    public void BeforEveryTest()
    {
        empty = new GameObject();
        empty.AddComponent<MainController>();
    }
    // A Test behaves as an ordinary method
    [Test]
    public void MainControllerGetInstance()
    {
        Assert.IsNotNull(MainController.Instance);
    }
}

这是我要测试的单例

public class MainController : Singleton<MainController>
{

[SerializeField]
private GameObject SomePref;

private void Start()
{
    SomePrefab.SetActive(true);
} 
}

我收到一个错误,即 SomePref 未设置为对象的实例,但我无法设置它,因为它是一个私有的序列化字段。现在什么是消除该错误的好习惯。我知道,我可以在 MainController 的 Start Methode 中使用 Resource.Load,但这是好方法吗?

标签: unity3dtestingnunit

解决方案


推荐阅读