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/),
|
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).
|
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
|
## [0.9.38] - 2021-05-27
|
||||||
### Fixed
|
### Fixed
|
||||||
- Fix `Channel::ClosedError` when using default Crystal Logger. [#27](https://github.com/icy-arctic-fox/spectator/issues/27)
|
- 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 %}
|
{% end %}
|
||||||
%stubs
|
%stubs
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def no_args
|
||||||
|
::Spectator::Mocks::NoArguments.new
|
||||||
|
end
|
||||||
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…
Add table
Add a link
Reference in a new issue