JSJ 341: Testing in JavaScript with Gil Tayar
JavaScript Jabber27 Marras 2018

JSJ 341: Testing in JavaScript with Gil Tayar

Panel:
  • Aimee Knight
  • AJ O’Neal
  • Charles Max Wood
Special Guest: Gil Tayar In this episode, the panel talks with Gil Tayar who is currently residing in Tel Aviv and is a software engineer. He is currently the Senior Architect at Applitools in Israel. The panel and the guest talk about the different types of tests and when/how one is to use a certain test in a particular situation. They also mention Node, React, Selenium, Puppeteer, and much more!Show Topics:0:00 – Advertisement: KENDO UI 0:35 – Chuck: Our panel is AJ, Aimee, myself – and our special guest is Gil Tayar. Tell us why you are famous!1:13 – Gil talks about where he resides and his background. 2:27 – Chuck: What is the landscape like now with testing and testing tools now?2:39 – Guest: There is a huge renaissance with the JavaScript community. Testing has moved forward in the frontend and backend. Today we have lots of testing tools. We can do frontend testing that wasn’t possible 5 years ago. The major change was React.The guest talks about Node, React, tools, and more!4:17 – Aimee: I advocate for tests and testing. There is a grey area though...how do you treat that? If you have to get something into production, but it’s not THE thing to get into production, does that fall into product or...what?5:02 – Guest: We decided to test everything in the beginning. We actually cam through and did that and since then I don’t think I can use the right code without testing. There are a lot of different situations, though, to consider.The guest gives hypothetical situations that people could face. 6:27 – Aimee.6:32 – Guest: The horror to changing code without tests, I don’t know, I haven’t done that for a while. You write with fear in your heart. Your design is driven by fear, and not what you think is right. In the beginning don’t write those tests, but...7:22 – Aimee: I totally agree and I could go on and on and on.7:42 – Panel: I want to do tests when I know they will create value. I don’t want to do it b/c it’s a mundane thing. Secondly, I find that some times I am in a situation where I cannot write the test b/c I would have to know the business logic is correct. I am in this discovery mode of what is the business logic? I am not just building your app.I guess I just need advice in this area, I guess.8:55 – Guest gives advice to panelist’s question. He mentions how there are two schools of thought.10:20 – Guest: Don’t mock too much.10:54 – Panel: Are unit tests the easiest? I just reach for unit testing b/c it helps me code faster. But 90% of my code is NOT that.11:18 – Guest: Exactly! Most of our test is glue – gluing together a bunch of different stuff! Those are best tested as a medium-sized integration suite.12:39 – Panel: That seems like a lot of work, though! I loathe the database stuff b/c they don’t map cleanly. I hate this database stuff.13:06 – Guest: I agree, but don’t knock the database, but knock the level above the database.13:49 – Guest: Yes, it takes time! Building the script and the testing tools, but when you have it then adding to it is zero time. Once you are in the air it’s smooth sailing.14:17 – Panel: I guess I can see that. I like to do the dumb-way the first time. I am not clear on the transition.14:47 – Guest: Write the code, and then write the tests.The guest gives a hypothetical situation on how/when to test in a certain situation. 16:25 – Panel: Can you talk about that more, please?16:50 – Guest: Don’t have the same unit – do browser and business logic stuff separated. The real business logic stuff needs to be above that level. First principle is separation of concerns.18:04 – Panel talks about dependency interjection and asks a question. 18:27 – Guest: What I am talking about very, very light inter-dependency interjection.19:19 – Panel: You have a main function and you are doing requires in the main function. You are passing the pieces of that into the components that need it.19:44 – Guest: I only do it when it’s necessary; it’s not a religion for me. I do it only for those layers that I know will need to be mocked; like database layers, etc.20:09 – Panel.20:19 – Guest: It’s taken me 80 years to figure out, but I have made plenty of mistakes a long the way. A test should run for 2-5 minutes max for package.20:53 – Panel: What if you have a really messy legacy system? How do you recommend going into that? Do you write tests for things that you think needs to get tested?21:39 – Guest answers the question and mentions Selenium! 24:27 – Panel: I like that approach.24:35 – Chuck: When you say integration test what do you mean?24:44 – Guest: Integration tests aren’t usually talked about. For most people it’s tests that test the database level against the database. For me, the integration tests are taking a set of classes as they are in the application and testing them together w/o the...so they can run in millisecond time.26:54 – Advertisement – Sentry.io 27:52 – Chuck: How much do the tools matter?28:01 – Guest: The revolutions matter. Whether you use Jasmine or Mocha or whatever I don’t think it matters. The tests matter not the tools.28:39 – Aimee: Yes and no. I think some tools are outdated.28:50 – Guest: I got a lot of flack about my blog where I talk about Cypress versus Selenium. I will never use Jasmine. In the end it’s the29:29 – Aimee: I am curious would you be willing to expand on what the Selenium folks were saying about Puppeteer and others may not provide?29:54 – Guest: Cypress was built for frontend developers. They don’t care about cross browser, and they tested in Chrome. Most browsers are typically the same. Selenium was built with the QA mindset – end to end tests that we need to do cross browser.The guest continues with this topic.30:54 – Aimee mentions Cypress. 31:08 – Guest: My guessing is that their priority is not there. I kind of agree with them.31:21 – Aimee: I think they are focusing on mobile more.31:24 – Guest: I think cross browser testing is less of an issue now. There is one area that is important it’s the visual area! It’s important to test visually across these different browsers.32:32 – Guest: Selenium is a Swiss knife – it can do everything.33:32 – Chuck: I am thinking about different topics to talk about. I haven’t used Puppeteer. What’s that about?33:49 – Guest: Puppeteer is much more like Selenium. The reason why it’s great is b/c Puppeteer will always be Google Chrome. 35:42 – Chuck: When should you be running your tests? I like to use some unit tests when I am doing my development but how do you break that down?36:06 – Guest.38:30 – Chuck: You run tests against production?38:45 – Guest: Don’t run tests against production...let me clarify!39:14 – Chuck.39:21 – Guest: When I am talking about integration testing in the backend...40:37 – Chuck asks a question. 40:47 – Guest: I am constantly running between frontend and backend.I didn’t know how to run tests for frontend. I had to invent a new thing and I “invented” the package JS DONG. It’s an implementation of Dong in Node. I found out that I wasn’t the only one and that there were others out there, too.43:14 – Chuck: Nice! You talked in the prep docs that you urged a new frontend developer to not run the app in the browser for 2 months?43:25 – Guest: Yeah, I found out that she was running the application...she said she knew how to write tests. I wanted her to see it my way and it probably was a radical train-of-thought, and that was this...44:40 – Guest: Frontend is so visual.45:12 – Chuck: What are you working on now?45:16 – Guest: I am working with Applitools and I was impressed with what they were doing.The guest goes into further detail.46:08 – Guest: Those screenshots are never the same.48:36 – Panel: It’s...comparing the output to the static site to the...48:50 – Guest: Yes, that static site – if you have 30 pages in your app – most of those are the same. We have this trick where we don’t upload it again and again. Uploading the whole static site is usually very quick. The second thing is we don’t wait for the results. We don’t wait for the whole rendering and we continue with the

Become a supporter of this podcast: https://www.spreaker.com/podcast/javascript-jabber--6102064/support.

Jaksot(734)

Partytown with Adam Bradley - JSJ 550

Partytown with Adam Bradley - JSJ 550

Today we talk with Adam Bradley, the Director of Technology at Builder.io. He previously worked at Ionix as a creator of Ionic Framework, a mobile UI interface builder for web applications, and StencilJS which powers Ionix. Currently he works on both Qwik and Partytown at Builder.io.In today’s episode we dive into Partytown, discussing the unique ways it improves website performance. When there are so many third-party scripts injected into the average website, you can quickly lose control of speed. We learn how Partytown addresses this with a remote web worker, and how it still gets the data it needs synchronously. SponsorsTop End DevsRaygun | Click here to get started on your free 14-day trialCoaching | Top End DevsLinksGitHub: BuilderIO/partytownGitHub: BuilderIO/qwikBuilder.ioRun Third-Party Scripts From A Web WorkerGitHub: Adam BradleyTwitter: @adamdbradleyPicksAdam- uvuAdam- @playwright/testCharles- Irish GaugeCharles - Book Club for developer books (coming soon)Charles - How to Stay Current Course (coming soon)Charles- JavaScript Remote Conference 2022Charles- ActiveCampaign - #1 Customer Experience Automation Platform - ActiveCampaignDan- TPAC 2022Dan - War in UkraineSteve - Dad JokesSupport this podcast at — https://redcircle.com/javascript-jabber/donationsPrivacy & Opt-Out: https://redcircle.com/privacyBecome a supporter of this podcast: https://www.spreaker.com/podcast/javascript-jabber--6102064/support.

20 Syys 20221h 16min

Qwik with Misko Hevery - JSJ 549

Qwik with Misko Hevery - JSJ 549

Today we talk with Misko Hevery about solving the loading speed issue for websites constructed using JavaScript frameworks. Such websites are often slow to load, which is detrimental to their ability so succeed. After 16 years at Google, where he created Angular, he now works on the Qwik framework at Builder.io, a headless visual CMS. We learn how Qwik dramatically improves page speed metrics through an innovative architecture that enables resumability instead of hydration. We talk about how this is implemented, and about how you can get started with it. SponsorsTop End DevsCoaching | Top End DevsLinksng-conf 2022Builder.io and Qwik - JSJ 540Core Web Vitals and Whatnot - JSJ 537JSJ 476: Understanding Search Engines and SEO (for devs) - Part Resumable Frameworks: | Miško Hevery | ng-conf 2022 WebinarFramework reimagined for the edge!Twitter: Miško Hevery PicksAJ- JULIAN SMITH - MalkAJ- webinstall.devAJ- Watch The Sandman | Netflix Official SiteCharles- JavaScript Remote Conference 2022Charles- HomeDan- Gentleman Bastard SeriesDan - War in UkraineMisko- Thinking, Fast and SlowSteve - Dad JokesSupport this podcast at — https://redcircle.com/javascript-jabber/donationsPrivacy & Opt-Out: https://redcircle.com/privacyBecome a supporter of this podcast: https://www.spreaker.com/podcast/javascript-jabber--6102064/support.

13 Syys 20221h 11min

Web Performance and the Google WordPress Team with Felix Arntz - JSJ 548

Web Performance and the Google WordPress Team with Felix Arntz - JSJ 548

Today we talk with Felix Arntz, a developer relations engineer at Google.  Hired on the Google WordPress team, and involved with the Sidekick plugin, we discuss some of the challenges and approaches of improving performance on WordPress sites, as well as other open source CMS’s. SponsorsTop End DevsRaygun | Click here to get started on your free 14-day trialCoaching | Top End DevsLinksCore PerformanceSlackWordPress + SlackTwitter: @DanShappirTwitter: @wonder95Twitter: @JSJabber- Top End DevsFelix ArntzTwitter: @felixarntzGitHub: felixarntzPicksAJ- Just Use An npm PackageAJ- Engineering FestivusAJ- Caddy 2 - The Ultimate Server with Automatic HTTPSAJ- webinstall.devDan- Watch Better Call Saul Season 6 Online | AMCDan- Web DirectionsDan - War in UkraineFelix- Prey (2022) - IMDbFelix - Man jumps out of plane at 25,000 ft without parachuteSteve- A New Vertical Farm Will Grow 3 Million Pounds of Mycelium a Year for Fungi-Based BaconSteve - Dad JokesSupport this podcast at — https://redcircle.com/javascript-jabber/donationsPrivacy & Opt-Out: https://redcircle.com/privacyBecome a supporter of this podcast: https://www.spreaker.com/podcast/javascript-jabber--6102064/support.

6 Syys 20221h 24min

Supply Chain Security with Stephen Chin - BONUS

Supply Chain Security with Stephen Chin - BONUS

There is no question that the volume, sophistication, and severity of software supply chain attacks is on the rise.  How do you navigate your supply chain security?  Stephen Chin joins the show today to discuss various strategies and action plans for how to best prevent and address these types of attacks. In this episode…Where do you start with supply chain security?Spotting attackers and preventionHow do you know who to trust?Dependency injections and malicious packages Network reliability and uptimePyrsia and JFrog as software toolsConnect with Stephen ChinTwitter: @steveonjavaLinksDevOps Tools for Java DevelopersThe Decentralized Package Network | Pyrsia.ioSoftware Supply Chain to Release Fast & Secure, Continuously | JFrogSupport this podcast at — https://redcircle.com/javascript-jabber/donationsPrivacy & Opt-Out: https://redcircle.com/privacyBecome a supporter of this podcast: https://www.spreaker.com/podcast/javascript-jabber--6102064/support.

2 Syys 202243min

Even More JavaScript Features You Should Avoid - JSJ 547

Even More JavaScript Features You Should Avoid - JSJ 547

Today’s episode is a continuation of the previous JavaScript Jabber Episode 543, where we discuss JS language features to avoid.  Do you agree with the list?  Today we talk about:for inforEachelsenullobject.createA named function using the arrow operator switchlabels SponsorsTop End DevsCoaching | Top End DevsPicksCharles- OrbisCharles- Diablo ImmortalCharles- Richard Paul EvansCharles- JavaScript Remote Conference 2022Charles- - Top End DevsDan- John Carmack: Doom, Quake, VR, AGI, Programming, Video Games, and RocketsDan - BuilderIO framework benchmark mitosisDan - War in UkraineSteve- James Webb Space Telescope Shows Big Bang Didn't Happen? Wait...Steve - Dad JokesSupport this podcast at — https://redcircle.com/javascript-jabber/donationsPrivacy & Opt-Out: https://redcircle.com/privacyBecome a supporter of this podcast: https://www.spreaker.com/podcast/javascript-jabber--6102064/support.

30 Elo 20221h 15min

Vue Courses, Top End Devs, and More... Oh, My! - JSJ 546

Vue Courses, Top End Devs, and More... Oh, My! - JSJ 546

Today Steve and Charles talk about the many updates and events coming to Top End Devs, from upcoming conferences to new courses and content.  Check out the conference lineup at https://topenddevs.com/conferences.  If you are interested in building courses or would like to speak at any of the conferences, contact Charles.  We also dive into a conversation about what it really means to be a 10x developer and a top 1% developer. SponsorsTop End DevsCoaching | Top End DevsLinksOverview - Nuxt 3 Essentials | Vue MasteryAtomic Habits: An Easy & Proven Way to Build Good Habits & Break Bad Ones- Podcast Playbook- Top End Devsvue/CHANGELOG.mdPicksCharles- QuiddlerCharles- Chart.jsCharle- Business Software and Services Reviews | G2Steve- JSON Creator Douglas Crockford Interview by EvroneSteve - Dad JokesSupport this podcast at — https://redcircle.com/javascript-jabber/donationsPrivacy & Opt-Out: https://redcircle.com/privacyBecome a supporter of this podcast: https://www.spreaker.com/podcast/javascript-jabber--6102064/support.

23 Elo 202248min

JavaScript and IoT with Nick Hehr and Peter Hoddie - JSJ 545

JavaScript and IoT with Nick Hehr and Peter Hoddie - JSJ 545

Steve, Dan and A.J talk with Nick Hehr and Peter Hoddie about using JavScript with IoT devices. They cover a wide range of topics, including the XS JavaScript Engine, the only complete ECMAScript 2018 engine optimized for embedded devices (created by Moddable), and even get into the nitty gritty of how it is built and how it works. They also cover TC53 - the standards committee for JS in embedded systems, a committee that Nick and Peter are part of. In picks, they get into a great discussion on home security systems and their various security issue, and of course, Steve brings the great dad jokes. SponsorsTop End DevsRaygun | Click here to get started on your free 14-day trialCoaching | Top End DevsLinksTC53Resuscitating IoT with JavaScript - Peter Hoddie & Lizzie Prader, Moddable - YouTubeECMA-419: The ECMAScript Embedded Systems API and J5e - Donovan Buck, BrandExtract - YouTubeHipsterBrownModdableTwitter: @hipsterbrownTwitter: @phoddiePicksAJ- GitHub - BeyondCodeBootcamp/jsdoc-typescript-starterAJ- Typing without TranspilationAJ- Eyeglasses Online | Eyewear for Everyone™ | Zenni OpticalAJ- Amazon.com. Spend less. Smile more.AJ- Oakley MX L Frame Adult Tear-Off Off-Road/Dirt Bike Motorcycle Eyewear AccessoriesNick -MicrocenterNick- Abode Home Security - #1 DIY Wireless Home Security SolutionNick-  Build With Matter | Smart Home Device SolutionPeter- The Extensible Web ManifestoPeter- Fanny Mendelssohn - WikipediaSteve-  Introducing multitasking to Arduino | Arduino BlogSupport this podcast at — https://redcircle.com/javascript-jabber/donationsPrivacy & Opt-Out: https://redcircle.com/privacyBecome a supporter of this podcast: https://www.spreaker.com/podcast/javascript-jabber--6102064/support.

16 Elo 20221h 38min

The Story of Mel with Tomer Lichtash and David Frankiel - JSJ 544

The Story of Mel with Tomer Lichtash and David Frankiel - JSJ 544

Today we have special guests Tomer Lichtash and David Frankiel, a web developer and programmer behind the epic hacker folklore project The Story of Mel, a comprehensive guide to The Story of Mel.   This story, which has survived through all the changes in the internet since its birth in 1983, and has morphed through all its iterations into something almost poetic in nature.  This allegory tells the story of the birth of of high-tech culture as we know it today, and creates some heated debate among our panelists as to the validity of its meanings.  Tomer and David tell some of the back story into their journey to discover if the story is a hoax, or if is truly real. SponsorsTop End DevsCoaching | Top End DevsLinksMel's Loop - A Comprehensive Guide to The Story of MelCreeds of Craftsmanship · Issue #18 · BeyondCodeBootcamp/beyondcodebootcampTwitter: @tomerlichtashtomerlichtash - OverviewPicksAJ- Form follows function - WikipediaAJ- dotGo 2015 - Rob Pike - Simplicity is ComplicatedAJ - The UnexplainedDan - Downturn in the Tech IndustryDan- The Thief, His Wife and the Canoe (TV Mini Series 2022) - IMDbDan - War in UkraineDavid- What is Windows Presentation Foundation - WPF .NETDavid - Nouran ZoharDavid - In theory there is no difference between theory and practice, but in practice there is.Tomer - Net Pioneers 1.0Tomer- Post-Gogol World, by The Daniil KharmsSupport this podcast at — https://redcircle.com/javascript-jabber/donationsPrivacy & Opt-Out: https://redcircle.com/privacyBecome a supporter of this podcast: https://www.spreaker.com/podcast/javascript-jabber--6102064/support.

9 Elo 20221h 6min

Suosittua kategoriassa Liike-elämä ja talous

sijotuskasti
psykopodiaa-podcast
mimmit-sijoittaa
rss-rahapodi
ostan-asuntoja-podcast
herrasmieshakkerit
rss-lentopaivakirjat
leadcast
rss-paasipodi
taloudellinen-mielenrauha
pomojen-suusta
hyva-paha-johtaminen
rss-rahamania
rss-laakispodi
rss-merja-mahkan-rahat
rss-sisalto-kuntoon
rss-startup-ministerio
rss-huomisen-talous
rss-lounastauko
rss-vaikuttavan-opettajan-vierella