mirror of
https://gitea.invidious.io/iv-org/shard-spectator.git
synced 2024-08-15 00:53:35 +00:00
Add no_args support for stubs
Fixes https://github.com/icy-arctic-fox/spectator/issues/28
This commit is contained in:
parent
92f758084d
commit
e3f6fb3c7c
4 changed files with 48 additions and 0 deletions
|
@ -4,6 +4,10 @@ All notable changes to this project will be documented in this file.
|
|||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
## [Unreleased]
|
||||
### Added
|
||||
- Added support for `with(no_args)` for method stubs. [#28](https://github.com/icy-arctic-fox/spectator/issues/28)
|
||||
|
||||
## [0.9.38] - 2021-05-27
|
||||
### Fixed
|
||||
- Fix `Channel::ClosedError` when using default Crystal Logger. [#27](https://github.com/icy-arctic-fox/spectator/issues/27)
|
||||
|
|
19
spec/issues/github_issue_28_spec.cr
Normal file
19
spec/issues/github_issue_28_spec.cr
Normal file
|
@ -0,0 +1,19 @@
|
|||
require "../spec_helper"
|
||||
|
||||
Spectator.describe "GitHub Issue #28" do
|
||||
class Test
|
||||
def foo
|
||||
42
|
||||
end
|
||||
end
|
||||
|
||||
mock Test do
|
||||
stub foo
|
||||
end
|
||||
|
||||
it "matches method stubs with no_args" do
|
||||
test = Test.new
|
||||
expect(test).to receive(:foo).with(no_args).and_return(42)
|
||||
test.foo
|
||||
end
|
||||
end
|
|
@ -170,4 +170,8 @@ module Spectator::DSL
|
|||
{% end %}
|
||||
%stubs
|
||||
end
|
||||
|
||||
def no_args
|
||||
::Spectator::Mocks::NoArguments.new
|
||||
end
|
||||
end
|
||||
|
|
21
src/spectator/mocks/no_arguments.cr
Normal file
21
src/spectator/mocks/no_arguments.cr
Normal file
|
@ -0,0 +1,21 @@
|
|||
require "./arguments"
|
||||
|
||||
module Spectator::Mocks
|
||||
class NoArguments < Arguments
|
||||
def args
|
||||
Tuple.new
|
||||
end
|
||||
|
||||
def opts
|
||||
NamedTuple.new
|
||||
end
|
||||
|
||||
def ===(other : Arguments) : Bool
|
||||
other.args.empty? && other.opts.empty?
|
||||
end
|
||||
|
||||
def ===(other) : Bool
|
||||
false
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Reference in a new issue