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(735)

Mastering Browser Caching with Vitali Zaidman - JSJ 490

Mastering Browser Caching with Vitali Zaidman - JSJ 490

The Jabber panel along with Vitali Zaidman jump in and discuss how your browser cache works, what the standard is, and what you can expect when you're trying to take advantage of the performance characteristics of your users' browsers.The browser cache control settings and techniques are not straightforward, so buckle up and learn how to get your browsers to load assets from memory.PanelAJ O'NealCharles Max WoodDan ShappirSteve EdwardsGuestVitali Zaidman SponsorsJavaScript Error and Performance Monitoring | SentryDev Influencers AcceleratorLinksIntro To Service Workers & Caching - YouTubeLove your cache: Optimize for the second load - YouTubeHTTP cachingTwo Important Differences between Firefox and IE CachingVitali Zaidman | Software Architect | Personal WebsiteGitHub: Vitali Zaidman ( vzaidman )Twitter: Vitali Zaidman ( @vzaidman )PicksAJ- WASM, Rust, the State of Async/Await - Utah Rust Nov 2020 - YouTube (CloudFlare Workers w/ WASM + Rust)AJ- Beyond Code Live 004 - How Domains (URLs) Work - YouTubeAJ- Beyond Code Live 005 - Setup your First Server, Right Now (and get $100 or 60 days free) - YouTubeCharles- Fanatical ProspectingCharles- Riverside.fmSteve- Why Don’t Sheep Shrink In The Rain?Steve- The wholly pun_bible | InstagramContact AJ:AJ ONealCoolAJ86 on GITBeyond Code BootcampBeyond Code Bootcamp | GitHubFollow Beyond Code Bootcamp | FacebookTwitter: Beyond Code Bootcamp ( @_beyondcode )Contact Charles:Devchat.tvDevChat.tv | FacebookTwitter: DevChat.tv ( @devchattv )Contact Dan:GitHub: Dan Shappir ( DanShappir )LinkedIn: Dan ShappirTwitter: Dan Shappir ( @DanShappir )Contact Steve:Twitter: Steve Edwards ( @wonder95 )GitHub: Steve Edwards ( wonder95 )LinkedIn: Steve EdwardsSpecial Guest: Vitali Zaidman .Sponsored By:Sentry: Resolve JavaScript errors and performance issues with SentrySupport 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.

29 Kesä 20211h 3min

Pain-Free Automated Deployments with DigitalOcean's App Platform - BONUS

Pain-Free Automated Deployments with DigitalOcean's App Platform - BONUS

If you wish you could just push to your git repository and then have your application automatically update itself, then you should have a look at DigitalOcean's App Platform.This offering is a sort of secret weapon that allows you to customize your application with the services you need and then simply push to deploy.There's no outsourcing to 3rd party databases, etc. It's all included in DigitalOcean's offering. So, you just pick what you need and then set the app to deploy.DigitalOcean's App Platform also works for static sites. So, if you're running a build of your blog or JAMstack app, you'll find that App Platform already supports you.To try it out, go to https://do.co/jabber and sign up to get $PanelCharles Max WoodGuestChris SevPhil DoughertySpecial Guests: Chris Sev and Phil Dougherty.Sponsored By:DigitalOcean: Get started on DigitalOcean App Platform with $100 in free credit at do.co/jabber.Support 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.

25 Kesä 202127min

Typing Without Transpilation - The Beauty of JSDoc - JSJ 489

Typing Without Transpilation - The Beauty of JSDoc - JSJ 489

Long time friend of the show Gil Tayar joins us again this time to discussing using JSDoc for JavaScript type annotations instead of TypeScript. Turns out that you can now get all of the benefits of TypeScript types without having to adopt the entire TypeScript workflow. Gil describes the benefits of this approach, and how it could impact the future of Web development.PanelAimee KnightCharles Max WoodDan ShappirSteve EdwardsGuestGil TayarSponsorsJavaScript Error and Performance Monitoring | SentryDigitalOceanDev Influencers AcceleratorLinksUse JSDocs: IndexJSDoc - WIkipediaJSDoc typings: all the benefits of TypeScript, with none of the drawbacksJSJ 441: The Present and Future of JavaScript Bundling and Delivery with Yoav Weiss | Devchat.tvTwitter: Gil Tayar ( @giltayar )PicksCharles- Ruby Rogues | Devchat.tvCharles- Built BarsCharles- Back MarketDan- Progress Delayed Is Progress Denied - Infrequently NotedGil- Daring FireballGil- Stratechery by Ben ThompsonSteve- Why You’re Christian - David PerellSteve- My Favorite One Liners | MuhammadContact Aimee:Aimee Knight – Software Architect, and International Keynote SpeakerGitHub: Aimee Knight ( AimeeKnight )Twitter: Aimee Knight ( @Aimee_Knight )LinkedIn: Aimee K.aimeemarieknight | InstagramAimee Knight | FacebookContact Charles:Devchat.tvDevChat.tv | FacebookTwitter: DevChat.tv ( @devchattv )Contact Dan:GitHub: Dan Shappir ( DanShappir )LinkedIn: Dan ShappirTwitter: Dan Shappir ( @DanShappir )Contact Steve:Twitter: Steve Edwards ( @wonder95 )GitHub: Steve Edwards ( wonder95 )LinkedIn: Steve EdwardsSpecial Guest: Gil Tayar.Sponsored By:Sentry: Resolve JavaScript errors and performance issues with SentryDigitalOcean: Get started on DigitalOcean App Platform with $100 in free credit at do.co/jabber.Support 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.

22 Kesä 20211h 16min

The React Way & Opinionated Practices with Ian Schwartz - JSJ 488

The React Way & Opinionated Practices with Ian Schwartz - JSJ 488

Never underestimate the power of teaching. Ian reached out to AJ in regards to previous comments about React on the show and demonstrated that he knows a whole lot more than most of us, so we had him on to talk about his learning journey, the philosophy of react, and top tips for new developers entering the field. Huzzah!PanelAJ O'NealCharles Max WoodSteve EdwardsGuestIan SchwartzSponsorsDev Influencers AcceleratorRaygun | Click here to get started on your free 14-day trial LinksContext - ReactuseEncapsulation | Kyle ShevlinIntroduction - EnzymeBefore You memo() - Overreacted118: Jenn Creighton on Composition and Architecture10 Morning Habits | Jim Kwik - YouTubeCouch to 5K – The Complete 5K Beginner Training PlanSchwartz.WorldPicksAJ- Context - ReactAJ- 118: Jenn Creighton on Composition and ArchitectureAJ- Introduction - EnzymeAJ- Before You memo() - OverreactedAJ- Security #RIIRAJ- webinstall.dev/vim-essentialsCharles- Changes at BasecampCharles- Monday.comIan- Preact CLIIan- Sleep ApneaContact AJ:AJ ONealCoolAJ86 on GITBeyond Code BootcampBeyond Code Bootcamp | GitHubFollow Beyond Code Bootcamp | FacebookTwitter: Beyond Code Bootcamp ( @_beyondcode )Contact Charles:Devchat.tvDevChat.tv | FacebookTwitter: DevChat.tv ( @devchattv )Contact Steve:Twitter: Steve Edwards ( @wonder95 )GitHub: Steve Edwards ( wonder95 )LinkedIn: Steve EdwardsSpecial Guest: Ian Schwartz.Sponsored By:Raygun: Raygun now offers Real User Monitoring of Core Web Vitals. Start your 14-day free trial now.Support 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.

15 Kesä 20211h 20min

Node in the Browser and Much more: Web Containers with Eric Simons - JSJ 487

Node in the Browser and Much more: Web Containers with Eric Simons - JSJ 487

Eric Simons from Stackblitz joins the JSJ panel to discuss the game changing technology announced at Google.io this year. What they demonstrated was their ability to run NodeJS in the browser using new technology called Web Containers. However, the implications go well beyond the realities of running Node in the browser. Eric and the panel dive into the implications of what this new way of working could mean for the web and application development.PanelAimee KnightAJ O'NealCharles Max WoodDan ShappirSteve EdwardsGuestEric SimonsSponsorsJavaScript Error and Performance Monitoring | SentryDigitalOceanDev Influencers AcceleratorLinksHow do I manually turn off/on voice guidance on my Jabra Evolve 75?JSJ 450: Native Features Inside The Browser – Introducing Google’s Project Fugu with Thomas Steiner | Devchat.tvJSJ 280: Stackblitz with Eric Simons and Albert Pai | Devchat.tvHow to publish N-API package | Node.jsIntroducing WebContainers: Run Node.js natively in your browserStackBlitzEricSimons - StackBlitzTwitter: Eric Simons ( @ericsimons40 )PicksAimee- GitHub | jtpio/jupyterliteAJ- WASM, Rust, the State of Async/Await - Utah Rust Nov 2020AJ- A 'Worst Nightmare' Cyberattack: The Untold Story Of The SolarWinds HackAJ- GitHub | dbohdan/classless-cssAJ- GitHub | therootcompany/tz.jsAJ- GitHub | therootcompany/async-routerCharles- DevOps 062: Behind the SolarWinds breach | Devchat.tvCharles- Ancestry®Charles- FamilySearchCharles- Learn your heritageCharles- Learn your country’s heritageDan- Why Hamas Keeps Fighting, and LosingDan- Jupiter's LegacyEric- Next.js ConfSteve- Tyrannosaurus on InstagramContact Aimee:Aimee Knight – Software Architect, and International Keynote SpeakerGitHub: Aimee Knight ( AimeeKnight )Twitter: Aimee Knight ( @Aimee_Knight )LinkedIn: Aimee K.aimeemarieknight | InstagramAimee Knight | FacebookContact AJ:AJ ONealCoolAJ86 on GITBeyond Code BootcampBeyond Code Bootcamp | GitHubFollow Beyond Code Bootcamp | FacebookTwitter: Beyond Code Bootcamp ( @_beyondcode )Contact Charles:Devchat.tvDevChat.tv | FacebookTwitter: DevChat.tv ( @devchattv )Contact Dan:GitHub: Dan Shappir ( DanShappir )LinkedIn: Dan ShappirTwitter: Dan Shappir ( @DanShappir )Contact Steve:Twitter: Steve Edwards ( @wonder95 )GitHub: Steve Edwards ( wonder95 )LinkedIn: Steve EdwardsSpecial Guest: Eric Simons .Sponsored By:Sentry: Resolve JavaScript errors and performance issues with SentryDigitalOcean: Get started on DigitalOcean App Platform with $100 in free credit at do.co/jabber.Support 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.

8 Kesä 20211h 18min

The 3 Essentials for Successful Job Outcomes - BONUS

The 3 Essentials for Successful Job Outcomes - BONUS

Chuck dives into the 3 essentials for getting the next successful outcome you want in your career. Whether that's something simple like a raise or something more complex like going freelance, you can achieve it by working on 3 main areas.First, building skills. The most obvious type of skills you'll need is technical skills. However, don't neglect your people skills and your organizational skills as well since you're often paid for how you work with people and enhance their work and how you put your work together in the most efficient ways.Second, building relationships. Often other people will be able to help you find the opportunities or will be the ones to make the decisions that impact your ability to get the outcome you want. Having good relationships is key to having good outcomes.Third, building recognition. Being known for being valuable in important ways allows you to leverage the skills you have to build better relationships and create opportunities to get what you need to get the outcomes you want by giving people what they want. A podcast is a great way to do all three. Chuck explains exactly how that works in this podcast and goes deeper as part of the Dev Influencers Accelerator.PanelCharles Max WoodSupport 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.

4 Kesä 202135min

CrUX and Core Web Vitals - What to Measure on the Web with Rick Viscomi - JSJ 486

CrUX and Core Web Vitals - What to Measure on the Web with Rick Viscomi - JSJ 486

Rick Viscomi joins us from Google to talk to us about the Chrome User Experience Report (CrUX) and the HTTP Archive. He explains what it tells us about how the web is built, how it performs, and what we know about the web today.PanelAimee KnightAJ O'NealDan ShappirSteve EdwardsGuestRick ViscomiSponsorsDev Influencers AcceleratorRaygun | Click here to get started on your free 14-day trial LinksJSJ 334: “Web Performance API” with Dan Shappir | Devchat.tvJSJ 428: The Alphabet Soup of Performance Measurements | Devchat.tvIs my host fast yet?Twitter: Rick Viscomi ( @rick_viscomi )PicksAimee- SparkPostAimee- BigQuery: Qwik Start - ConsoleAJ- SendGridAJ- Tuscan Dairy Whole Vitamin D MilkAJ- The Twelve-Factor AppAJ- webinstall.dev/fzfDan- Great TVDan- Keep daylight savings time all year roundRick- Vsauce - YouTubeRick- Uranium Ore Steve- The State of CSS SurveySteve- GitHub | State of JS 2020 QuestionsContact Aimee:Aimee Knight – Software Architect, and International Keynote SpeakerGitHub: Aimee Knight ( AimeeKnight )Twitter: Aimee Knight ( @Aimee_Knight )LinkedIn: Aimee K.aimeemarieknight | InstagramAimee Knight | FacebookContact AJ:AJ ONealCoolAJ86 on GITBeyond Code BootcampBeyond Code Bootcamp | GitHubFollow Beyond Code Bootcamp | FacebookTwitter: Beyond Code Bootcamp ( @_beyondcode )Contact Dan:GitHub: Dan Shappir ( DanShappir )LinkedIn: Dan ShappirTwitter: Dan Shappir ( @DanShappir )Contact Steve:Twitter: Steve Edwards ( @wonder95 )GitHub: Steve Edwards ( wonder95 )LinkedIn: Steve EdwardsSpecial Guest: Rick Viscomi.Sponsored By:Raygun: Raygun now offers Real User Monitoring of Core Web Vitals. Start your 14-day free trial now.Support 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.

1 Kesä 20211h 9min

How to Get Hired at a FANG Company - BONUS

How to Get Hired at a FANG Company - BONUS

Chuck explains what he taught Nathan last week when we asked how to get hired at a FANG (Facebook Apple/Amazon Netflix Google) company. Essentially, it boils down to how to build the skills and knowledge needed to pass the interview. How to build the relationships to get into the door and have the interviewer want you to succeed. And how to build the reputation that has the company wanting you regardless of the outcome. This approach also works for speaking at conferences, selling courses, and other outcomes as well as it's the core of building a successful career as an influencer.PanelCharles Max WoodSupport 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.

28 Touko 202122min

Suosittua kategoriassa Liike-elämä ja talous

sijotuskasti
psykopodiaa-podcast
mimmit-sijoittaa
rss-rahapodi
herrasmieshakkerit
hyva-paha-johtaminen
ostan-asuntoja-podcast
sijoituskaverit
rss-lahtijat
taloudellinen-mielenrauha
oppimisen-psykologia
kasvun-kipuja
pomojen-suusta
rss-rahamania
rss-huomisen-talous
rss-bisnesta-bebeja
rss-merja-mahkan-rahat
rss-vaikuttavan-opettajan-vierella
rss-h-asselmoilanen
rss-puhutaan-rahasta