Did Netflix Just Drop a Banger?
Ғылым және технология
Netflix just released a testing package they are adopting internally. Let's talk about it!
-- sources
article: netflixtechblog.com/introduci...
this week in react: thisweekinreact.com/newslette...
-- my links
saas: www.animate-code.com/
newletter: www.joshtriedcoding.com/
discord: / discord
github: github.com/joschan21
Пікірлер: 54
Only thing I want to know is Primagen's reaction on this.
@joshtriedcoding
3 ай бұрын
i wonder if he is the one that whipped this up
Honestly, I don't see any difference to Cypress - it also has the visual screenshot comparison & component testing. For the overrides, it's not really a smart approach either, I certainly don't want to add special code to my components only to be able to test them.
Netflix: "hey guys, we've made a revolutionary new e2e testing package" Cypress: "Am I a joke to you?"
@joshtriedcoding
3 ай бұрын
hahaha
@asakurayoh3909
2 ай бұрын
Cypress is 100x better but just they don't compare images.
Nah I think this has a ways to go before I replace my current testing stack. Feels like a replacement for react testing-library more so. Need more info on screenshot match functionality and their mocking api. Those seems interesting but that’s about it
Another "revolutionary" product that's been around in other products for decades.
Tks to share Josh.
Your definition of integration test seems to be of unit tests. And isn’t integration testing and E2E supposed to be the same?
To much coupling for me... I like new takes on testing especially E2E but I wouldn't want to put my "testing code" into normal code..
Yeah this is a no, sticking to Playwright for e2e and testing library for intergration
Netflix definition of end to end is weird here, at no point is this end to end to me. Maybe their definition is different where individual teams own "end to end" tests that may have mocking/bootstrapping and tying the code to test code AND the framework the FE uses is not end to end for me. But at companies at a smaller scale whole system end to end tests of a whole platform with no mocking/bootstrapping in my experience is way more valuable to more teams org wide, I'd stick with vanilla playwright. But maybe this could work for integration tests of components, purely replacing react testing library 🤷♂️ doesn't seem like a game changer
@peteredmonds1712
3 ай бұрын
The second paragraph in the blog post states "UI tests have been conducted through either unit testing or integration testing (also referred to as End-To-End (E2E) testing)". We must have learned different nomenclature because E2E and Integration tests serve different purposes in my mind. Integration = test a collection of units (service) against external services. E2E = test the application as a whole from Request to Response.
@griffadev
3 ай бұрын
@@peteredmonds1712 I agree, and that's my point, I find it strange the library/blog post attempts to call this UI testing end to end testing whilst offering mocking at the same time, strange one!
@joshtriedcoding
3 ай бұрын
to me there's something off if a tool advertises itself as "revolutionary", regardless of how good the product is. based take
@sealone777
3 ай бұрын
I get it but what about say mocking third party API responses? Do you want your test to fail when third party platform is down? If so then your test may/may not pass based on when you run the test.
@peteredmonds1712
3 ай бұрын
@@sealone777 it depends. Different tests serve different purposes. Unit tests shouldn't fail if third parties are down. Integration tests are debatable. E2E tests should definitely fail. The point of E2E is to make sure everything is working together, including infrastructure and third parties. A failing E2E test often isn't a issue with code.
I see lots of comparison with Cypress but isn’t it true that parallel test isn’t included as free feature? I do know that there is open source to enable that but how can a test library not come with parallel test by default?
Gonna test it soon
Can anyone explain what is the benefit of using this? I didn't get it. Visual test in end to end testing is not new. Thanks
@ChristianRebelsky
2 ай бұрын
Yes this new approach has his small niche room in testing strategy. Visual testing, E2E and integration testing is not new and most already used it. The new thing is the combination of them. Why? Like already said it is a small niche to stuff. Most would use Cypress those days to get most things done (at least since component tests are possible), but it has it trade offs. For example if you can not produce a mock endpoint to test with or mock data at all. So it is easier (the solution with cypress is not impossible) to test different scenarios with safetest and all the benefits, functionality it brings. At the end it just utilizes Playwright instead of Cypress. Ask Netflix engineers or the primagen why. Thanks for the video but it does not help at all to clarify the need for this.
Nice, guys reinvented combined coverage lol
I don't get the point of this, this is playwright based and playwright already has an experimental components testing feature that does exactly what this does. It's just a wrapper for playwright when I can just use playwright directly...
Umh I don't know Rick 😅 I think 🤔 they "just" combined features of playwright that already exists
Isn't snapshot comparison already a part of playwright? A lot of the people in the comments are saying some features are similar to cypress, so does this mean Netflix is trying to reinvent the wheel?
Now we need a good example of using Cypress on production projects
ok ok. But I have never felt the need to test UI like ever. Must be a skill issue but what are some of the cases when you would?
@peteredmonds1712
3 ай бұрын
The benefits come when you have very complex front-end behaviors that are integral to your application. More for web-applications and not web-sites.
@ParanoicoBR
3 ай бұрын
I don't work a lot with frontend, but in my experience this test library would be pretty good to implement some smoke tests - simples tests just to check if the system is working as whole, preferably without mocking.
@wlockuz4467
3 ай бұрын
Its probably more applicable to large scale products like netflix
I don't think rewriting anything to use this would be justified but if I were starting a new project I would certainly consider this. That is if I were dumb enough to be creating servers with javascript.
@xeliqa3921
3 ай бұрын
This tool is for FE, not servers. Nice attempted jab :)
if you are not doing a heavy streaming/real time ui or are not netflix dont use this....
Unfortunately, still not convinced. The visual regression you are pushing hard is best still in an e2e test.
@justsample9185
3 ай бұрын
visual regression is part of cypress too
@joshtriedcoding
3 ай бұрын
It's not specific to this package but builds on top of jest-image-snapshot. Just a thing I like, "pushing this" feels like a weird way to describe that
@Calmac_
2 ай бұрын
@@joshtriedcoding building a unit tests on a visual component does not make any sense and ultimately doesn’t really give any benefit. It’s not clear in your video as to why you need to do this and if there are any alternatives. That’s why I was saying you are pushing unit tests. In my current situation, our team has been asked for 80% unit code coverage (including visual) 😂 and full automation for each feature developed 🫠. Cool to have stats though right?! 😜 For deciding to write a unit test here is my checklist: 1. Is it inside a framework (eg. React 🪝) 2. Is it visual If any of the above is true, write a E2E test. Otherwise, unit test.
Chromatic, Jest, Cypress laughing in corner
Banger? This feels too specific to their use case.
❤
Nah
meh...
It seems like netflix gonna drop there potential react killer soon
@NewTypeStarling
3 ай бұрын
Ram Ram bro!
@HarshShah465
3 ай бұрын
Bro code more. Than watching videos. This is not new at all. Very misleading video.
first
Doesn't sound special
Netflix also has chaosmonkey they've been big into this kind of testing stuff for a while