←back to thread

460 points flykespice | 8 comments | | HN request time: 0.487s | source | bottom
1. laerus ◴[] No.44324825[source]
What's missing from Hurl is snapshot testing. After using `insta` for testing APIs, I cannot go back.
replies(3): >>44324885 #>>44325117 #>>44325279 #
2. porker ◴[] No.44324885[source]
Is this https://insta.rs/? What are the benefits you've found with snapshot testing?
replies(1): >>44325243 #
3. whilenot-dev ◴[] No.44325117[source]
What's your value proposition for snapshots and why can't that already be fulfilled with full body checks? https://github.com/Orange-OpenSource/hurl?tab=readme-ov-file...
replies(2): >>44325237 #>>44327029 #
4. laerus ◴[] No.44325237[source]
Snapshots diff current with previous output and I only have to accept or reject the diff. I don't have to write the expected response myself. Snapshots can also stub out parts of the response that are not determistic.
replies(1): >>44325621 #
5. laerus ◴[] No.44325243[source]
Greatly reduced boilerplate. Diffing snapshots and providing previews to accept or reject changes is also more robust and user friendly.
6. CommonGuy ◴[] No.44325279[source]
We are working on snapshot testing for Kreya, expected to come in August. You might want to check it out :)
7. adelineJoOs ◴[] No.44325621{3}[source]
> Snapshots can also stub out parts of the response that are not determistic.

TIL! The way I knew to do it was to have a mock implementation that behaved like the real thing, expect for data/time/uuids/..., where there was just a placeholder. Snapshot tests being able to "mask" those non-deterministic parts sounds cool!

8. adelineJoOs ◴[] No.44327029[source]
tbh, that seems pretty close to what I would call snapshot testing already. What people usually do with it is using it for more broadly compared to API testing (for example, I currently use it to test snapshots of a TUI application I am developing) - i.e. you can use it whenever your test is of the form "I have something that I can print in some way and that should look the same until I explicitely want it to look differently in the future". There are a bit more bells and wizzles - For example, it is nice that one does not have to write the initial snapshots oneself. You write the test, execute, it creates the resulting file, then you review and commit that - handy little workflow!