mockery
d2
mockery | d2 | |
---|---|---|
20 | 101 | |
6,687 | 20,953 | |
1.3% | 1.5% | |
9.6 | 9.7 | |
15 days ago | 3 days ago | |
Go | JavaScript | |
BSD 3-clause "New" or "Revised" License | Mozilla Public License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
mockery
-
I Write Tests in Go
I'm far too lazy to write mocks by hand in go. You can generate a mock for a given interface with mockery https://github.com/vektra/mockery
-
go-ecommerce-microservices: A practical e-commerce microservices, built with cqrs, event sourcing, vertical slice architecture, event-driven architecture.
Some of the features: - ✅ Using Vertical Slice Architecture as a high level architecture - ✅ Using Event Driven Architecture on top of RabbitMQ Message Broker with a custom [Event Bus](pkg/messaging/bus/) - ✅ Using Event Sourcing in Audit Based services like [Orders Service](services/orders/) - ✅ Using CQRS Pattern and Mediator Patternon top of Go-MediatR library - ✅ Using Dependency Injection and Inversion of Controlon top of uber-go/fx library - ✅ Using RESTFul api with Echo framework and using swagger with swaggo/swag library - ✅ Using Postgres and EventStoreDB to write databases with fully supports transactions(ACID) - ✅ Using MongoDB and Elastic Search for read databases (NOSQL) - ✅ Using OpenTelemetry for collection Distributed Tracing with using Jaeger and Zipkin - ✅ Using OpenTelemetry for collection Metrics with using Prometheus and Grafana - ✅ Using Unit Test for testing small units with mocking dependent classes and using Mockery for mocking dependencies - ✅ Using End2End Test and Integration Test for testing features with all of their real dependeinces using docker containers (cleanup tests) and testcontainers-go library
- Direction of mockery: absorb different styles of mocks into this project · vektra mockery · Discussion #671
-
Go: Write Mock Test cases using Mockery and
Read mockery documentation: https://vektra.github.io/mockery/
-
Mocking unexported interfaces?
https://github.com/vektra/mockery is the better mocking framework in my biased opinion. The Google maintainers for gomock seem to have neglected the project.
-
I want to contribute to open source but don't know where to start
There are some one liner changes you can implement in https://github.com/vektra/mockery
-
Is gomock still maintained and recommended?
When there's just one heavyweight dependency you're interacting with, perhaps a one-off stub/fake is simpler, but I would posit that auto-generated mocks via things like mockery + go:generate leave less test code to maintain vs. perhaps many stubs across the project.
-
vektra/mockery: v2.21.0 includes "packages" config section, allowing 5x faster mock generation and more fine-grained control over mocks
Please take a look at the documentation linked here, and the related discussion topic that spawned this.
-
Issue implementing interface method that returns another interface
As you can see, the package has a chained method Logical().Write() . Since I want to create tests for PublicFunctionIWantToTest, I want to pass down all the functionality as interface so that I can use https://vektra.github.io/mockery/ to create mocks for it.
- FEEDBACK REQUESTED: Deprecation of automatic interface discovery · Discussion #549 · vektra/mockery
d2
-
Mermaid: Generation of diagrams like flowcharts or sequence diagrams from text
They were working on a wasm version some time ago I believe [0]. Not sure how usable this is insofar, but it may be of interest.
[0]: https://github.com/terrastruct/d2/pull/436/files
- D2: Modern diagram scripting language that turns text to diagrams
-
Ask HN: What do you use to create diagrams?
I'm clearly biased since I work at Datadog, but I use and recommend Cloudcraft[1] for diagramming. As I don't use the cloud I focus more on the manual design tools, but the automatic stuff are pretty neat.
Recently, though, I've been using D2[2] a lot and really liking it. The diagrams don't look as aesthetically pleasing to my eyes, but being able to design everything with a simple language is pretty cool, and helps with automation.
[1]: https://www.cloudcraft.co
[2]: https://d2lang.com
-
My 2024 review
This year I've started writing about several documentation techniques (as code) in my Documentation as Code series. I definitely want to add at least D2Lang to it.
- D2: Declarative Diagramming – A modern language that turns text to diagrams
- Mermaid ASCII Diagrams
- D2: A New Diagram Scripting Language That Converts Text to Diagrams Instantly
-
Exploring Goja: A Golang JavaScript Runtime
I work on the D2 project ([0]) and we switched from other Javascript runners (v8go) to Goja. Using a JS runtime with a dependency on cgo means your Go program loses the (huge) benefit of cross-compiling to different architectures, since at build time it gets linked to the architecture-specific libc.
If you're interested in some production code with Goja, this is our code for calling RoughJS [1] from Go in order to produce the hand-drawn diagram look: [2]
[0] https://github.com/terrastruct/d2
- NMAP-formatter: convert NMAP results to HTML, CSV, JSON, graphviz (dot), SQLite
- Penrose – Penrose
What are some alternatives?
gomock - GoMock is a mocking framework for the Go programming language.
mermaid - Generation of diagrams like flowcharts or sequence diagrams from text in a similar manner as markdown
counterfeiter - A tool for generating self-contained, type-safe test doubles in go
plantuml - Generate diagrams from textual description
go-sqlmock - Sql mock driver for golang to test database interactions
C4-PlantUML - C4-PlantUML combines the benefits of PlantUML and the C4 model for providing a simple way of describing and communicate software architectures