chore: add GUT test framework
This commit is contained in:
82
addons/gut/test/unit/test_double_tools.gd
Normal file
82
addons/gut/test/unit/test_double_tools.gd
Normal file
@@ -0,0 +1,82 @@
|
||||
extends GutInternalTester
|
||||
|
||||
|
||||
class FakeBase:
|
||||
var foo = 'foo'
|
||||
|
||||
func set_foo(val):
|
||||
foo = val
|
||||
|
||||
func get_foo():
|
||||
return foo
|
||||
|
||||
|
||||
class FakeDouble:
|
||||
extends FakeBase
|
||||
|
||||
|
||||
|
||||
|
||||
class TestTheBasics:
|
||||
extends GutInternalTester
|
||||
|
||||
var DoubleTools = load("res://addons/gut/double_tools.gd")
|
||||
var Stubber = load("res://addons/gut/stubber.gd")
|
||||
var StubParams = load("res://addons/gut/stub_params.gd")
|
||||
|
||||
var call_this_was_called = false
|
||||
func call_this(value):
|
||||
call_this_was_called = value
|
||||
|
||||
func before_each():
|
||||
call_this_was_called = false
|
||||
|
||||
|
||||
func test_can_make_one():
|
||||
assert_not_null(DoubleTools.new())
|
||||
|
||||
func test_get_method_to_call_returns_null_when_not_stubbed():
|
||||
var fd = FakeDouble.new()
|
||||
var stbr = Stubber.new()
|
||||
|
||||
var dt = DoubleTools.new()
|
||||
dt.stubber_ref = weakref(stbr)
|
||||
dt.double_ref = weakref(fd)
|
||||
|
||||
assert_null(dt.handle_other_stubs('set_foo', [1]))
|
||||
|
||||
|
||||
func test_handle_other_stubs_calls_method():
|
||||
var fd = FakeDouble.new()
|
||||
|
||||
var sp = StubParams.new(fd.set_foo)
|
||||
sp.to_call(call_this)
|
||||
|
||||
var stbr = Stubber.new()
|
||||
stbr.add_stub(sp)
|
||||
|
||||
var dt = DoubleTools.new()
|
||||
dt.stubber_ref = weakref(stbr)
|
||||
dt.double_ref = weakref(fd)
|
||||
|
||||
dt.handle_other_stubs('set_foo', [1])
|
||||
assert_eq(call_this_was_called, 1)
|
||||
stbr.clear()
|
||||
|
||||
|
||||
func test_handle_other_stubs_returns_value():
|
||||
var fd = FakeDouble.new()
|
||||
|
||||
var sp = StubParams.new(fd.get_foo)
|
||||
sp.to_call(func(): return 'asdf')
|
||||
|
||||
var stbr = Stubber.new()
|
||||
stbr.add_stub(sp)
|
||||
|
||||
var dt = DoubleTools.new()
|
||||
dt.stubber_ref = weakref(stbr)
|
||||
dt.double_ref = weakref(fd)
|
||||
|
||||
var result = dt.handle_other_stubs('get_foo', [])
|
||||
assert_eq(result, 'asdf')
|
||||
stbr.clear()
|
||||
Reference in New Issue
Block a user