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)

Gal Schlezinger and Edge Functions - JSJ 536

Gal Schlezinger and Edge Functions - JSJ 536

Today we talk with Gal working on developer tooling for the last decade.  Previously working at WIX, and now working at Vercel, he has created an open source FNM fast node version manager within that operates within Rust.  We talk about Vercel’s Edge Functions, which allows users to insert routing strategies with user code without having performance hits.    SponsorsTop End DevsCoaching | Top End DevsLinksDevelop. Preview. Ship. For the best frontend teams - VercelEdge Functions - VercelBun - fast JavaScript & CSS bundlerfnmsolving puzzles using TypeScript typesGal SchlezingerTwitter: @galstarPicksAJ - None Dare Call It ConspiracyAJ - WHO KILLED BITCOIN? - DocumentaryDan - How To Use Google CrUX To Analyze And Compare The Performance Of JS FrameworksDan - A deep dive into optimizing LCPDan - War in UkraineGal - RaycastGal - Working with smarter peopleSteve - Podcast from syntax.fmSteve - 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.

14 Kesä 20221h 15min

A Deep Dive Into Some Nooks and Crannies of JavaScript - JSJ 535

A Deep Dive Into Some Nooks and Crannies of JavaScript - JSJ 535

In today’s all-panelist episode, we take a deep dive into some of the nooks and crannies of JavaScript.  We discuss and debate the benefits and problems of various methods such as getter and setter, Const, Freeze and Proxy.  SponsorsTop End DevsRaygun | Click here to get started on your free 14-day trialCoaching | Top End DevsPicksAJ - Valley Forge FlagsAJ - Frog ChessAJ - Beyond Code BootcampAJ -Creeds of CraftsmanshipDan - JSConf BudapestDan - Stock Market / Tech Stocks going downDan - 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.

7 Kesä 20221h 10min

Preventing Fraud on Your Payment Website - JSJ 534

Preventing Fraud on Your Payment Website - JSJ 534

Today we talk with Paul Asjes, a developer advocate at Stripe.  We get some insight into creating a more secure site for credit card transactions.  We also discuss card testing, or account stealing, techniques that are used to gain access to active credits cards.  This topic is very important because it can have big financial consequences, and if serious enough, could cause a business to close.  Paul gives us some techniques and strategies to discourage and prevent this activity. SponsorsTop End DevsCoaching | Top End DevsLinksStripeStripe Developers - DiscordStripe Developers - YouTubeLinkedIn - Paul Asjes Twitter: @paul_asjesPicksAJ - The Black PrismAJ - The unnamed city that I now live inCharles -Machi KoroPaul - Stripe SessionsPaul- TakecarebnbSteve - How to Freaking Find Great Developers By Having Them Read CodeSteve - 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.

31 Touko 202254min

TC39 and Upcoming Proposals for ECMAScript (PART 2) - JSJ 533

TC39 and Upcoming Proposals for ECMAScript (PART 2) - JSJ 533

Today we chat with Thomas Randolph from GitLab, to discuss his Top 10 list of the upcoming TC39 proposals. The list…Temporal ProposalImport AssertionsJSON ModulesBuilt-In ModulesObservable ProposalPartial ApplicationUUIDPipeline OperatorModule BlocksEmitter Proposal +1 Records and Tuples +2 Reverse and Sort Methods on ArraysSponsorsTop End DevsCoaching | Top End DevsLinksTwitter: Thomas Randolph ( @rockerest )JSJ 425: The Evolution of JavaScriptTemporalimport assertionsJSON modulesThe TC39 ProcessObservablePartial Application for ECMAScriptES pipe operator (2021)JavaScript Module BlocksRecord & TupleECMAScript proposal "Change Array by copy": four new non-destructive Array methodsGitHub: tc39/proposalsJavaScript Jabber 19 April 2022Thomas O. RandolphPicksCharles - The Last BattleCharles - GamePigeonDan - Star Trek: PicardDan - 103 Early HintsDan - War in UkraineSteve - Dad JokesSteve - Rescinded mask mandates for travelThomas - My notes to this episodeThomas - The Design of Everyday Things by Don NormanThomas - What is Reactive Programming by Kevin WebberThomas - War in UkraineSpecial Guest: Thomas Randolph.Sponsored By:Coaching | Top End Devs: Do you want to level up your career? or go freelance? or start a podcast or youtube channel? Let Charles Max Wood Help You Achieve Your DreamsTop End Devs: Learn to Become a Top 5% Developer. Join our community of ambitious and engaged programmers to learn how.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.

24 Touko 20221h 1min

TC39 and Upcoming Proposals for ECMAScript (PART 1) - JSJ 532

TC39 and Upcoming Proposals for ECMAScript (PART 1) - JSJ 532

Today we chat with Thomas Randolph from GitLab, to discuss his Top 10 list of the upcoming TC39 proposals. The list…Temporal ProposalImport AssertionsJSON ModulesBuilt-In ModulesObservable ProposalPartial ApplicationUUIDPipeline OperatorModule BlocksEmitter Proposal +1 Records and Tuples +2 Reverse and Sort Methods on ArraysSponsorsTop End DevsRaygun | Click here to get started on your free 14-day trialCoaching | Top End DevsLinksTwitter: Thomas Randolph ( @rockerest )JSJ 425: The Evolution of JavaScriptTemporalimport assertionsJSON modulesThe TC39 ProcessObservablePartial Application for ECMAScriptES pipe operator (2021)JavaScript Module BlocksRecord & TupleECMAScript proposal "Change Array by copy": four new non-destructive Array methodsGitHub: tc39/proposalsJavaScript Jabber 19 April 2022Thomas O. RandolphPicksCharles - The Last BattleCharles - GamePigeonDan - Star Trek: PicardDan - 103 Early HintsDan - War in UkraineSteve - Dad JokesSteve - Rescinded mask mandates for travelThomas - My notes to this episodeThomas - The Design of Everyday Things by Don NormanThomas - What is Reactive Programming by Kevin WebberThomas - War in UkraineSpecial Guest: Thomas Randolph.Sponsored By:Coaching | Top End Devs: Do you want to level up your career? or go freelance? or start a podcast or youtube channel? Let Charles Max Wood Help You Achieve Your DreamsRaygun: Raygun now offers Real User Monitoring of Core Web Vitals. Start your 14-day free trial now.Top End Devs: Learn to Become a Top 5% Developer. Join our community of ambitious and engaged programmers to learn how.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.

17 Touko 20221h 6min

Using Storybook and Nuxt To Quickly Build Websites - JSJ 531

Using Storybook and Nuxt To Quickly Build Websites - JSJ 531

Steve, AJ, and Dan talk to Drew Baker, co-founder of Los Angeles based digital agency Funkhaus about Storybook and Nuxt. After a discussion of various server side rendering methods, Drew talks about how they use Storybook, how it integrates tightly with Nuxt, and how it helps Funkhaus quickly and cleanly spin up sites for large customers.SponsorsTop End DevsCoaching | Top End DevsLinksFunkhausUI / Badges / Funkhaus - DefaultSongs from ScratchAI FoundationPicksAJ - The Lost MedalAJ - Raven DB - Happy Path PerformanceAJ - Creeds of CraftsmanshipAJ - Weight triggered coffee/tea warmerAJ - The Portal ElementFollow CoolAJ86 Live Streams: YouTube: https://youtube.com/coolaj86Twitch: https://twitch.tv/coolaj86Follow Beyond Code: YouTube: https://www.youtube.com/channel/UC2KJHARTj6KRpKzLU1sVxBATwitter: https://twitter.com/@_beyondcodeDan - War in UkraineDan - Terrorist Attack in Tel AvivDrew - Max Howl’s teaSteve - ViteSteve - How to Migrate from Vue CLI to ViteSteve - Dad JokesSpecial Guest: Drew Baker.Sponsored By:Coaching | Top End Devs: Do you want to level up your career? or go freelance? or start a podcast or youtube channel? Let Charles Max Wood Help You Achieve Your DreamsTop End Devs: Learn to Become a Top 5% Developer. Join our community of ambitious and engaged programmers to learn how.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.

10 Touko 202216min

NoSQL and RavenDB - JSJ 530

NoSQL and RavenDB - JSJ 530

Today we talk with Dejan Miličić, a consultant with more than 20 years of experience as a professional software developer with RavenDB. His areas of expertise are designing, writing, and maintaining applications, with a focus on software architecture and backend development.Dejan discusses the challenges and benefits of NoSQL databases, and what he has learned along the way to simplify and reduce the time required to make changes. We also talk about ways to approach different types of NoSQL databases, and how they should be used. SponsorsTop End DevsRaygun | Click here to get started on your free 14-day trialCoaching | Top End DevsLinksNoSQL Database | RavenDB ACID NoSQL Document DatabaseKaggle: Your Machine Learning and Data Science CommunityTweets by @6figuredevPicksAJ- Ethan Garofolo on YouTubeAJ - Microservices on YouTubeAJ - I Have Delivered Value… But At What Cost?AJ - Brandon SandersonChuck - ScytheChuck - Upcoming Converences: JavaScript Summit in July, DHH Coming for Rails in August, Angular React Vue Etc in Fall/WinterChuck - YellowstoneDejan - IdrisSteve - Low Earth Orbit VisualizationSteve - Utah - Arches, Canyonlands, Lake Powell, Bryce Canyon, Monument ValleySpecial Guest: Dejan Milicic.Sponsored By:Coaching | Top End Devs: Do you want to level up your career? or go freelance? or start a podcast or youtube channel? Let Charles Max Wood Help You Achieve Your DreamsRaygun: Raygun now offers Real User Monitoring of Core Web Vitals. Start your 14-day free trial now.Top End Devs: Learn to Become a Top 5% Developer. Join our community of ambitious and engaged programmers to learn how.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.

3 Touko 20221h 19min

Blockchain with Max Kordek - JSJ 529

Blockchain with Max Kordek - JSJ 529

In this episode, we talk with Max Kordek of Lisk, a leading expert on Blockchain. You’ll learn about what a Blockchain is, how it works, and the benefits of using it. There is also discussion on the opportunities that blockchain presents for the JavaScript developer.How does blockchain work as a decentralized ledger accessed across the world? We discuss how it operates without a central authority - everyone who participates in the network has the financial incentive that no one lies. This creates data that is secure and has integrity. Everything runs on a neutral protocol - no one can manipulate it. No interference from a third party.What is best suited for blockchain? With real-world examples, we discuss what major industries currently benefit - and where there is potential. Blockchain software development kits are available for developers to discover what blockchain can be used for. Logics and Libraries available to the large world of JS developers. Don't forget the lisk.js event this summer, and make sure to visit @maxkordek on Twitter at https://twitter.com/MaxKordek.SponsorsTop End DevsCoaching | Top End DevsLinksTwitter: Max Kordek ( @maxkordek )Twitter: Lisk ( @LiskHQ )lisk.chat on DiscordPicksAJ- Web3 Is Going Just GreatAJ- The Great Blockchain DebateAJ - The Line Goes Up DocumentaryAJ - How the Crypto Story EndsAJ- Creeds of CraftsmanshipFollow CoolAJ86 Live Streams: YouTube: https://youtube.com/coolaj86Twitch: https://twitch.tv/coolaj86Follow Beyond Code: YouTube: https://www.youtube.com/channel/UC2KJHARTj6KRpKzLU1sVxBATwitter: https://twitter.com/@_beyondcodeCharles- Pandemic Legacy Season Zero on AmazonCharles- BoardGameGeekCharles- Beyond Code BootcampCharles - Top End Devs Summit in JuneCharles - JS Remote Conference in JulyCharles- Rails 7 - Q & A in August *Charles- Rails 7 - Q & A in AugustCharles- PodioMax- Bitcoin 2022 Crypto ConferenceSpecial Guest: Max Kordek.Sponsored By:Coaching | Top End Devs: Do you want to level up your career? or go freelance? or start a podcast or youtube channel? Let Charles Max Wood Help You Achieve Your DreamsTop End Devs: Learn to Become a Top 5% Developer. Join our community of ambitious and engaged programmers to learn how.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.

26 Huhti 20221h 5min

Suosittua kategoriassa Liike-elämä ja talous

sijotuskasti
psykopodiaa-podcast
mimmit-sijoittaa
rss-rahapodi
herrasmieshakkerit
ostan-asuntoja-podcast
hyva-paha-johtaminen
taloudellinen-mielenrauha
sijoituskaverit
rss-lahtijat
rss-rahamania
rss-huomisen-talous
rss-vaikuttavan-opettajan-vierella
kasvun-kipuja
rss-bisnesta-bebeja
rss-merja-mahkan-rahat
rss-sisalto-kuntoon
rss-lentopaivakirjat
rss-paasipodi
rss-hoyrytetty