如何为从Unity中的Monobehaviour继承的类编写单元测试?

时间:2019-04-01 21:38:14

标签: c# unit-testing unity3d nunit

我正在尝试统一编写单元测试。我目前正在遵循Unity Test Runner提供的示例:

Unity文档中提供的示例:
exmple provided in Unity docs

这是我用来进行实际测试的模式的示例:

[UnityTest]
public IEnumerator ExampleTest()
{
    var test = new GameObject().AddComponent<MyScript>();

    test.testField = 100;

    yield return null;  

    Assert.AreEqual(100,test.testField);
}

当我尝试运行类似的测试时,在Unity的测试运行器中使用此EXACT模式,它会引发以下错误:

object reference not set to an instance of object

有什么我可以解决的吗?

Unity中的异常:

Exception Output

1 个答案:

答案 0 :(得分:0)

根据您要测试的内容,确实不需要迭代器

[Test]
public void ExampleTest() {
    //Arrange
    var expected = 100;

    var test = new GameObject().AddComponent<MyScript>();

    test.testField = expected;

    //Act
    var actual = test.testField;

    //Assert
    Assert.AreEqual(expected, actual);
}

引用Writing and executing tests in Unity Test Runner