CFC-Servers / CFC-Servers/GLuaTest

Create some way to do stub a function a certain number of times

Open
#33 0 comments 0 reactions 0 assignees View on GitHub
enhancement good first issue help wanted question
Dominant language
Lua
Stars
87
Forks
14
PR merge metrics
No merged PRs in 30d

Description

When making a stub, it may be desirable to only stub the function for a single call.

You can do this now, like:
```lua
local hookStub

hookStub = stub( hook, "Call" ).with( function()
hookStub:Restore()
end )

hook.Call( "blah" )

expect( hookStub ).to.haveBeenCalled()
```

But if you don't localize `hookStub` first, as would be common for these sorts of tests:
```lua
local hookStub = stub( hook, "Call" ).with( function()
hookStub:Restore()
end )
```
You would get an error on your `hook.Call` invocation, with the error message `attempt to index global 'hookStub', a nil value`.

This of course makes sense, but it can be confusing. Instead, perhaps we could have something like:
```lua
local hookStub = stubOnce( hook, "Call" )

hook.Call( "blah" )

expect( hookStub ).to.haveBeenCalled()
```

More realistically, we should allow a hook to be stubbed for any number of calls. Maybe as an optional third parameter to `stub()`?

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.