import Compat: Dates import Dates: Hour # Creating a patch with an optional parameter @testset "patch with optional parameter" begin hourvalue(h::Hour=Hour(0)) = Dates.value(h) patch = @patch hourvalue(h::Hour=Hour(21)) = 2 * Dates.value(h) apply(patch) do @test (@mock hourvalue()) == 42 @test (@mock hourvalue(Hour(4))) == 8 end end # Creating a patch with an keyword parameter @testset "patch with keyword parameter" begin hourvalue(; hour::Hour=Hour(0)) = Dates.value(hour) patch = @patch hourvalue(; hour::Hour=Hour(21)) = 2 * Dates.value(hour) apply(patch) do @test (@mock hourvalue()) == 42 # Test @mock calls with keyword arguments @test (@mock hourvalue(hour=Hour(4))) == 8 #:kw @test (@mock hourvalue(; hour=Hour(4))) == 8 #:parameters end end