Comments (4)
Great thorough article! I’ve added it to the list of resources on the wiki
from actor.
For those landing here but living on the minitest land: https://fidalgo.pt/2023/07/23/service-objects-in-the-wild.html
(shameless plug)
from actor.
I’m closing this issue, but feel free to discuss/reopen if you think of a better way to handle this.
from actor.
RSpec couldn’t be able to know what methods are defined on results since these methods only make sense at the end, once it’s passed through different actors.
For your example, it would make sense to define an error
method on ServiceActor::Result
for this specific use case, as it’s an encouraged output name:
class ServiceActor::Result
def error
to_h[:error]
end
end
However, this still wouldn’t work for other defined outputs.
You could use an instance_double
and stub expected outputs with allow
:
let(:result) { instance_double ServiceActor::Result, success?: false }
before do
allow(Google::AutocompletePlaces).to receive(:result).and_return(result)
allow(result).to receive(:error).and_return("lol")
end
In my case, though, I simply use double
in these cases and disable this cop, since it can’t know when we can and cannot check the methods beforehand:
RSpec/VerifiedDoubles:
# Allow the use of `double`.
Enabled: false
from actor.
Related Issues (20)
- alias_input is documented but unavailable HOT 1
- What about improving the README about testing? HOT 1
- Get "TypeError: exception class/object expected" error when update from 3.1.3 to 3.6 HOT 2
- Question / feature request: hooks around call? HOT 6
- Can't set an hash as a default value for an input HOT 1
- Keep Zeitwerk as a development dependency only HOT 2
- Consider removing `OpenStruct` usage HOT 2
- Consider dropping support for unmaintained Ruby releases HOT 1
- Misleading `ServiceActor::ArgumentError` message under specific circumstances HOT 8
- Make Actor result + pattern matching more pleasant HOT 1
- Actor's output names collision with `Object`'s instance methods HOT 2
- Using `Kernel.tap` and `Kernel.then` via `ServiceActor::Result` receiver HOT 1
- Is `DefaultCheck` obsolete? HOT 4
- Invoking undefined methods on `ServiceActor::Result` will lead to runtime errors in the next major release of Actor. HOT 29
- Release notes for 3.8.0 HOT 8
- [Proposal] Default outputs via `output_of` actor class method HOT 3
- Breaking changes on ServiceActor::Result `failure?` after dropping `ostruct` ??? HOT 5
- Repeated `play` execution on 3.9.0 HOT 2
- Actor play continues to call subsequent actors/interactors when one of the interactors fail HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from actor.