RRU 043: Testing React Apps Without Testing Implementation Details with Kent C. Dodds

    0
    1142

    Panel:

    • Lucas Reis
    • Justin Bennett
    • Charles Max Wood

    Special Guest: Kent C. Dodds

    In this episode, the panelist talk with today’s guest, Kent C. Dodds who works for PayPal, is an instructor, and works through open source! Kent lives in Utah with his wife and four children. Kent and the panel talk today about testing – check it out!

    Show Topics:

    0:00 – Kendo UI

    0:32 – Chuck: Hello! My new show is TheDevRev – please go check it out!

    1:35 – Panel: I want all of it!

    1:43 – Chuck: Our guest is Kent C. Dodds! You were on the show for a while and then you got busy.

    2:06 – Guest. 

    3:09 – Panel: The kid part is impressive.

    3:20 – Guest: Yeah it’s awesome, but the kid part is my wife! 

    4:09 – Panel: 10 years ago we weren’t having any tests and then now we are thinking about how to write better tests. It’s the next step on that subject. What is your story with tests and what sparked these ideas?

    4:50 – Guest.

    7:25 – Panel: We have a bunch of tests at my work. “There is no such thing as too many tests” are being said a lot! Then we started talking about unit tests and there was this shift. The tests, for me, felt cumbersome. How do I know that this suite of tests are actually helping me and not hurting me?

    8:32 – Guest: I think that is a valuable insight.

    11:03 – Panel: What is the make-up of a good test?

    11:13 – Guest: Test every line – everything! No.

    11:19 – Chuck: “Look at everything!” I don’t know where to start, man!

    11:30 – Guest: How do you avoid those false negatives and false positives.

    15:38 – Panel: The end user is going to be like more of integration test, and the developer user will be more like a unit tester?

    16:01 – Guest: I don’t care too much of the distinction between unit and integration tests.

    18:36 – Panel: I have worked in testing in the past. One of the big things that fall on the users’ flow is that it’s difficult b/c maybe a tool like Selenium: when will things render? Are you still testing things in isolation?

    19:33 – Guest: It depends. When I talk about UI integration testing I am still mocking the backend.

    23:10 – Chuck: I am curious, where do you decide these are expensive (so I don’t want to do too many of them), but at what point is it worth it to do it?

    23:30 – Guest mentions the testing pyramid.

    28:14 – Chuck: Why do you care about confidence? What is confidence and what does it matter?

    28:35 – FreshBooks!

    29:50 – Guest.

    32:20 – Panel: I have something to add about the testing pyramid.

    Lucas talks about tooling, Mocha, JS Dong, and more!

    33:44 – Guest: I think the testing pyramid is outdated and I have created my own.

    Guest talks about static testing, LINT, Cypress, and more!

    35:32 – Chuck: When I was a new developer, people talked about using tests to track down bugs. What if it’s a hairy bug?

    36:07 – Guest: If you can, you can use this methodical approach…

    39:46 – Panel: Let’s talk about the React library for a little bit?

    Panel: Part of the confidence of the tests we write we ask ourselves “will it stand the test of time?” How does the React Testing library go about to solve that?

    41:05 – Guest.

    47:51 – Panel: A few more questions. When you are getting something and testing and grabbing the label by its text have you found that to be fragile? Is it reasonably reliable?

    48:57 – Guest: Yeah this is a concern and it relies on content.

    53:06 – Panel: I like this idea of having a different library. Sometimes we think that a powerful tool is better, but after spending some time with other tools that’s not always the case.

    54:16 – Guest: “You tie your hands to free your mind.” It does less but what it does less it does better.

    55:42 – Panel: I think that with Cypress, too?

    55:51 – Guest: Yeah that’s why Cypress is great to use.

    57:17 – Panel: I wrote a small library here at work and it deals with metrics. I automated all of those small clicks – write a bit – click a bit – and it was really good. I felt quite efficient. Those became the tests.

    57:58 – Panel: One more question: What about react Native? That comes up a lot. At looking at testing libraries we try to keep parody between the two. Do you have any thoughts on that?

    58:34 – Guest talks about React Native.

    1:00:22 – Panel: Anything else? It’s fascinating to talk about and dive-into these topics. When we talk about confidence that is very powerful, too.

    1:01:02 – Panelist asks the last question!

    1:01:38 – Guest: You could show them the coverage support.

    Links:

    Sponsors:

    Picks:

    Lucas

    Justin

    Charles

    Kent