Следующий код отлично работает в моем приложении (Unity 2019.3.0f6). Он читает из Assets / Resources / Lesson-text. json и записывает ожидаемые журналы в консоль:
// file to read lessons from
public TextAsset jsonFile;
internal JsonLessonList LoadLessonFromFile()
{
JsonLessonList testLessonList = JsonUtility.FromJson<JsonLessonList>(jsonFile.text);
foreach (JsonLesson lesson in testLessonList.jsonLessonList)
{
Debug.Log("Found lesson: " + lesson.Name);
}
return testLessonList;
}
Я хочу прочитать тот же файл при использовании Unity Test Runner:
[UnityTest]
public IEnumerator TestFileParsesOkTest()
{
JsonLessonList testLessonList = jsonReader.LoadLessonFromFile();
Assert.IsNotNull(testLessonList);
yield return null;
}
, но я продолжаю получать это исключение:
TestFileParsesOkTest (0.019s)
Необработанное сообщение журнала: '[Exception] NullReferenceException: ссылка на объект не установлена на экземпляр объекта '. Используйте UnityEngine.TestTools.LogAssert.Expect
JsonReader.LoadLessonFromFile () (в Assets / Scripts / JsonReader.cs: 68)
JsonReader.Start () (в Assets / Scripts / JsonReader. cs: 37)
NullReferenceException: ссылка на объект не установлена на экземпляр объекта
Я знаю, что формат файла в порядке, потому что он работает из приложения. Я думаю, проблема в том, что "TextAsset jsonFile", установленный с помощью редактора единства, не виден Test Runner. Как мне сделать эту работу?
[Test]
public void JsonFileResourceTest()
{
Assert.IsNotNull(jsonReader.jsonFile);
}
приводит к:
JsonFileResourceTest (0,020 с)
Ожидается: не равно null Но было: null
(Тег разработки, управляемой тестами, связан с тем, что я получил самое простое чтение файла с одним работающим полем, и теперь я хочу создать резервную копию и написать для него модульный тест, а затем написать тесты перед дальнейшим кодированием.)