53 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			53 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| using System;
 | |
| using System.Collections;
 | |
| 
 | |
| namespace UnityEngine.TestTools
 | |
| {
 | |
|     /// <summary>
 | |
|     /// In an Edit Mode test, you can use `IEditModeTestYieldInstruction` interface to implement your own instruction. There are also a couple of commonly used implementations available:
 | |
|     /// - <see cref = "EnterPlayMode"/>
 | |
|     /// - <see cref = "ExitPlayMode"/>
 | |
|     /// - <see cref = "RecompileScripts"/>
 | |
|     /// - <see cref = "WaitForDomainReload"/>
 | |
|     /// </summary>
 | |
|     /// <example>
 | |
|     /// <code>
 | |
|     /// <![CDATA[
 | |
|     /// [UnityTest]
 | |
|     /// public IEnumerator PlayOnAwakeDisabled_DoesntPlayWhenEnteringPlayMode()
 | |
|     /// {
 | |
|     ///    var videoPlayer = PrefabUtility.InstantiatePrefab(m_VideoPlayerPrefab.GetComponent<VideoPlayer>()) as VideoPlayer;
 | |
|     ///
 | |
|     ///    videoPlayer.playOnAwake = false;
 | |
|     ///
 | |
|     ///    yield return new EnterPlayMode();
 | |
|     ///
 | |
|     ///    var videoPlayerGO = GameObject.Find(m_VideoPlayerPrefab.name);
 | |
|     ///
 | |
|     ///    Assert.IsFalse(videoPlayerGO.GetComponent<VideoPlayer>().isPlaying);
 | |
|     ///
 | |
|     ///    yield return new ExitPlayMode();
 | |
|     ///
 | |
|     ///    Object.DestroyImmediate(GameObject.Find(m_VideoPlayerPrefab.name));
 | |
|     /// }
 | |
|     /// ]]>
 | |
|     /// </code>
 | |
|     /// </example>
 | |
|     public interface IEditModeTestYieldInstruction
 | |
|     {
 | |
|         /// <summary>
 | |
|         /// Whether or not the instruction expects a domain reload to occur.
 | |
|         /// </summary>
 | |
|         bool ExpectDomainReload { get; }
 | |
|         /// <summary>
 | |
|         /// Whether or not the instruction expects the Unity Editor to be in **Play Mode**.
 | |
|         /// </summary>
 | |
|         bool ExpectedPlaymodeState { get; }
 | |
|         /// <summary>
 | |
|         ///  Used to define multi-frame operations performed when instantiating a yield instruction.
 | |
|         /// </summary>
 | |
|         /// <returns>Enumerable collection of operations to perform.</returns>
 | |
|         IEnumerator Perform();
 | |
|     }
 | |
| }
 |