60 lines
1.7 KiB
GDScript
60 lines
1.7 KiB
GDScript
extends GutTest
|
|
|
|
class CoupledScriptTest:
|
|
extends GutInternalTester
|
|
|
|
var _gut = null
|
|
|
|
func before_each():
|
|
_gut = new_gut(verbose)
|
|
_gut._should_print_versions = false
|
|
_gut._should_print_summary = false
|
|
add_child_autofree(_gut)
|
|
|
|
func _same_name():
|
|
return gut.get_current_test_object().name
|
|
|
|
func _run_tests(script_path, inner_class, test_name):
|
|
_gut.add_script(script_path)
|
|
|
|
if(inner_class != null):
|
|
_gut.inner_class_name = inner_class
|
|
|
|
if(test_name != null):
|
|
_gut.unit_test_name = test_name
|
|
|
|
_gut.wait_log_delay = wait_log_delay
|
|
_gut.test_scripts()
|
|
|
|
|
|
func _assert_pass_fail_count(passing, failing):
|
|
assert_eq(_gut.get_pass_count(), passing, 'Pass count does not match')
|
|
assert_eq(_gut.get_fail_count(), failing, 'Failing count does not match')
|
|
|
|
|
|
class TestYieldInBeforeAfterMethods:
|
|
extends CoupledScriptTest
|
|
|
|
const SCRIPT_PATH = 'res://test/resources/yield_in_before_after_methods.gd'
|
|
|
|
func test_gut_waits_for_yield_in_before_all():
|
|
_run_tests(SCRIPT_PATH, 'TestYieldInBeforeAll', null)
|
|
await wait_for_signal(_gut.end_run, 10)
|
|
_assert_pass_fail_count(1, 0)
|
|
|
|
func test_gut_waits_for_yield_in_after_all():
|
|
var start_time = Time.get_ticks_msec()
|
|
_run_tests(SCRIPT_PATH, 'TestYieldInAfterAll', null)
|
|
await wait_for_signal(_gut.end_run, 10)
|
|
assert_gt(Time.get_ticks_msec() - start_time, 1000)
|
|
|
|
func test_gut_waits_for_yield_in_after_each():
|
|
_run_tests(SCRIPT_PATH, 'TestYieldInAfterEach', null)
|
|
await wait_for_signal(_gut.end_run, 10)
|
|
_assert_pass_fail_count(1, 1)
|
|
|
|
func test_gut_waits_for_yield_in_before_each():
|
|
_run_tests(SCRIPT_PATH, 'TestYieldInBeforeEach', null)
|
|
await wait_for_signal(_gut.end_run, 10)
|
|
_assert_pass_fail_count(1, 0)
|