Tired of API tests? I know that feeling. That's why I released #Ogooreck: a sneaking BDD framework in #BDD style
👉 github.com/oskardudycz/Og…
Goal is to create a simple but composable tool that will cut the needed boilerplate for testing by the set of sneaky helpers and syntax. 1/
It works with any testing framework. And was baptised in fire (read used in my Event Sourcing .NET samples github.com/oskardudycz/Ev…).
The next step will be to add a similar set of tests for CQRS, DDD, and Event Sourcing common scenarios. 2/
See, the whole implementation is below 500 lines: github.com/oskardudycz/Og…
That means, that I'm open for feedback and contribution! I take PRs 😎
I created it for fun, as I didn't create something brand new for some time, but people liked it so why not release it? 😅
3/
Thanks go to:
- @SimonCropp for github.com/SimonCropp/Mar…,
- @adamralph for github.com/adamralph/bull…,
- @mysticmindB that did a similar build setup in Marten which I inspired a lot,
- @ddoomen for fluentassertions.com
As I used their work 🙂
4/
P.S. I might use eventually Alba from @jeremydmiller as it's a decent testing framework, and it might be worth creating synergy 🙂
github.com/JasperFx/alba
5/5

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with Oskar Dudycz 🇺🇦✊

Oskar Dudycz 🇺🇦✊ Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @oskar_at_net

May 8
@MatheusMarabesi Later in the video, I tried to explain that Twitter might not be the best medium to explain that precisely. I wrote my thoughts on that topic in my two blog posts:
- event-driven.io/en/generic_doe…
- event-driven.io/en/cqrs_facts_….
But let's try! 😅👇 1/
@MatheusMarabesi To me, even by looking at the mentioned picture, I'm having a hard time understanding what the author had in mind and what the flow should look like. If the idea of doing a "clean code" is to provide something that's maintainable and on point, then this is contradictory /2
@MatheusMarabesi The general issue is that such a layered split makes you focus on the technical breakdown instead of the business feature. It's decoupling specific flow in so many distinct pieces that it's hard to track what's happening end to end. Even for the simple update 3/
Read 9 tweets
Mar 28
After getting the first version of #Java samples of #EventSourcing, I asked the community for feedback for my PR
github.com/oskardudycz/Ev…
I wanted to get harsh but fair feedback to make it idiomatic and, in general, better. I got what I ask for, let me share what I learned 👇😅 1/
Java Optional should be used only as a result, to reduce the confusion around the `void` type. It should not be used as a method input parameter or field. This makes sense, as Java generics are more compile-time templates and are zipped. See more in: nipafx.dev/design-java-op… /2
I already used sealed interfaces to have a nice pattern matching while rebuilding the state from events. Yet it appeared that they allow full "union types" experience! After that, I went further and created 👇It enables concise and precise modelling /3
Read 15 tweets
Mar 3
@dustinmoris @noseratio Unfortunately, the narration that's NATO's fault comes from the Russian propaganda. Beware of spreading it forward.
There were neither talks about that. The only reason why Putin invaded Ukraine was that it finally started to be a sovereign country 1/
@dustinmoris @noseratio Even though Ukraine got technically independence it wasn't neutral at all as you said. It was still reigned by an ex-party oligarch that was steered by Russia (see Łeonid Kuczma). It was almost a Russian puppet-like Belarus now. So please don't tell that they were neutral /2
@dustinmoris @noseratio The real, practical independence came in 2004 in the Orange Revolution. People were so fed up with oligarchs, bribery and they just wanted to have control over their lives. That meant being finally free from the direct Russian impact. No NATO, no Western impact. Humanity. 3/
Read 10 tweets
Jan 6
@tomasz_ducin @tomasz_ducin, chciałbym podkreślić, że na bazie relacyjnej można zamodelować każdą inną bazę, nawet event store, dlatego mówimy tutaj o różnicach między Event Sourcing, a klasycznym znormalizowanym podejściem 🙂 Oczywiście w takim podejściu da się zrobić obsługę koszyka 1/
@tomasz_ducin Główna kwestia, w której Event Sourcing ma przewagę jest brak utraty danych biznesowych. Jeśli np. ktoś dodał produkt do koszyka, a następnie go usuniemy, to z perspektywy klasycznego podejścia osiągniemy ten sam stan. W Event Sourcing będziemy mieć dwa zdarzenia 2/
@tomasz_ducin To oczywiście nie musi być problemem, w niektórych przypadkach jest to wystarczające, ale w obecnych czasach przechowywanie danych jest względnie tanie, ale za to informacja jest droga. Niektóre domeny biznesowe mogą wyciągnąć więcej z danych,inne mniej. ECommerce myślę więcej 3/
Read 12 tweets
Dec 9, 2021
If you’d like to know why you may not need snapshots and learn modelling patterns to do #EventSourcing efficiently, read my latest article on @eventstore blog 👇
It may sound blatant, but I think that there are not many resources like that on this topic 1/
eventstore.com/blog/keep-your…
It’s a looking article, much longer than the length of the streams you should keep in the event store 🙂 I tried to keep it shorter or split it, but my main goal was to provide a thorough, nuanced and complete explanation. So grab a glass of preferred drink and have a read 2/
This is the third part and (hopefully) the last one of the triad about temporal modelling patterns. I started with a general introduction, explaining closing the books as to why you should reconsider your decision about snapshots. 3/
eventstore.com/blog/snapshots…
Read 10 tweets
Jun 18, 2021
@bitbonk @bitbonk good question! Indeed, the IoT model seems to be aligned with Event Sourcing, as we're listening for the events and then doing interactions. The main issue is the nature of data coming from machines and the frequency. In Event Sourcing events gather business value 1/
@bitbonk IoT data is usually raw. Also, the number of measurements and their frequency can be really high, especially for the really busy production line. Most of the event stores are not so lightweight. So they not always can be run on e.g. raspberry pi. 2/
@bitbonk Also, quite often, they have a bigger frequency than event stores can handle per second. The common pattern is to do the data ingestion. So using lightweight, but fast type of storage (e.g. key/value) or queue that will batch the events from IoT, group and change into events /3
Read 5 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Don't want to be a Premium member but still want to support us?

Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

Follow Us on Twitter!

:(