using System.Collections; using System.Collections.Generic; using System.Linq; using AsteroidGame.Entities; using NUnit.Framework; using UnityEditor.SceneManagement; using UnityEngine; using UnityEngine.SceneManagement; using UnityEngine.Serialization; using UnityEngine.TestTools; using Assert = UnityEngine.Assertions.Assert; public class TurretTestScript : MonoBehaviour { [SerializeField] private List _turrets; [SerializeField] private EnemyBase _enemy; [UnitySetUp] public IEnumerator LoadScene() { // Load the scene asynchronously and wait until it's fully loaded var asyncLoad = SceneManager.LoadSceneAsync("TurretTestScene"); while (!asyncLoad.isDone) { yield return null; } _turrets = new(); _turrets = FindObjectsOfType().ToList(); _enemy = new(); _enemy = FindObjectOfType(); } // // A Test behaves as an ordinary method // [Test] // public void NewTestScriptSimplePasses() // { // // Use the Assert class to test conditions // } // // // A UnityTest behaves like a coroutine in Play Mode. In Edit Mode you can use // // `yield return null;` to skip a frame. // [UnityTest] // public IEnumerator NewTestScriptWithEnumeratorPasses() // { // // Use the Assert class to test conditions. // // Use yield to skip a frame. // yield return null; // } [UnityTest] public IEnumerator OnlyOneTurretGetsTheKill() { var totalKillCount = 0; if (_enemy != null) { yield return null; } else { foreach (var turret in _turrets) { totalKillCount += turret.Kills; } } Assert.IsTrue(totalKillCount == 1); } }