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)

JSJ 449: The Things Every JavaScript Developer Must Know

JSJ 449: The Things Every JavaScript Developer Must Know

In this episode the panel discusses various programming topics, and whether or not they are required knowledge for JavaScript programmers. This includes topics such as scopes and hoisting, closures, the event-loop, and the behavior of this. For each such topic, the panel discusses whether or not JavaScript devs are required to know and understand them in order to write better code, or pass job interviews, or to understand existing codebases. Alternatively, if these are topics that JavaScript developers don’t need to know, and maybe should even avoid.SponsorsAudible.comThe Complete Software Developer’s Career Guide – Grab a Copy TodayCacheFlyPanelAJ ONealCharles Max WoodDan ShappirSteve EdwardsLinks10 Interview Questions Every JavaScript Developer Should Know – AKA: The Keys to JavaScript Masteryhttps://kentcdodds.com/blog/newspaper-code-structurehttps://developer.mozilla.org/en-US/docs/Web/JavaScript/ClosuresYour Coffee Shop Doesn’t Use Two-Phase CommitPicksAJCrock on JS Follow JavaScript Jabber on Twitter: @JSJabberSupport 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 Syys 20201h 5min

JSJ 448: MongoDB Schema Fundamentals with Joe Karlsson

JSJ 448: MongoDB Schema Fundamentals with Joe Karlsson

MongoDB is a popular option for databases which provides objects that look and act like JavaScript Objects. We brought an expert, Joe Karlsson to clear up some of the confusion on how to arrange your data in MongoDB. Joe provides a rundown on how to think about your data with a smaller dataset, a medium sized dataset, and a large dataset. The panel also dives into how the database works and how things are managed and arranged by the MongoDB database engine.SponsorsThe Complete Software Developer’s Career Guide – Grab a Copy TodayCacheFlyPanelCharles Max WoodAimee KnightDan ShappirAJ ONealSpecial GuestJoe KarlssonLinksM320: Data Modelingdeveloper.mongodb.comPicksChuckLeadership in Turbulent TimesAimeeProsourceFit Acupressure MatAJAcupuncture MatSQL vs NoSQLChiron Beta Primessh-pubkeyArs Technica War Stories: Ultima Online (about sharding)Joe KarlssonStamped From the BeginningSpecial Guest: Joe Karlsson. 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 Syys 20201h 8min

JSJ 447: Using Javascript for Data Analysis and Data Science with Daniel Lathrop

JSJ 447: Using Javascript for Data Analysis and Data Science with Daniel Lathrop

Our guest is Daniel Lathrop, a freelance investigative data journalist and educator, and formerly a newspaper reporter and Professor of Journalism and Media informatics at the University of Iowa. On this show, Daniel describes how JavaScript is a great choice for doing data analysis and data science, potentially even more so than other languages which are often used for this purpose, such as Python and R. Daniel also provides information about lots of useful tools and techniques to use in this context.SponsorsThe Complete Software Developer’s Career Guide – Grab a Copy TodayCacheFlyPanelAJ ONealAimee KnightDan ShappirSpecial GuestDaniel LathropLinkshttps://daniel.buzz/PicksAimeeForecasting at ScaleDan Shappirhttps://www.data-forge-notebook.comAJPropaganda in Nazi GermanyDaniel Lathrophttps://www.data-forge-notebook.comhttps://www.claudiajs.comhttps://js4ds.org/Follow JavaScript Jabber on Twitter > @JSJabberSpecial Guest: Daniel Lathrop. 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 Syys 202053min

JSJ 446: Achieving Work-Life Balance, Especially When WFH

JSJ 446: Achieving Work-Life Balance, Especially When WFH

The reality of Covid-19 has changed the way that many people work, working remotely from home instead of coming into the office. Achieving work-life balance can always be a challenge in tech, but can be especially challenging when work and life mix in the same location. In this episode the panel discusses this important topic, and how it has impacted their own lives and careers. Also, how it changes over time and during a career.SponsorsThe Complete Software Developer's Career Guide - Grab a Copy TodayPanelAJ O’NealAimee KnightCharles Max WoodSteve EdwardsDan ShappirLinkshttps://www.figma.comJSJ 431: Personal Branding for Developers with Morad SternGPT3() - The spreadsheet function to rule them all.I built a React dice component with GPT-3PicksSteveHow Does The Internet Work? AJhttps://blerp.comhttps://webinstall.dev/curlieDanWear Maskshttps://github.com/openai/gpt-3 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 Elo 20201h 4min

JSJ 445: Augmented Reality for Mobile Browsers with Connell Gauld

JSJ 445: Augmented Reality for Mobile Browsers with Connell Gauld

Connell has been working on Universal AR, a cross-platform Augmented Reality kit for Mobile Browsers delivering native-level performance using only JavaScript (and a bit of WASM under the hood). We talk about what AR actually is, some of its use cases, as well as the fascinating details as to how the Zap.works team is delivering near native performance and accuracy without IR, LiDAR, or any other of the common advanced AR sensors - just the good ol' phone camera and advanced Computer Visual trickery.SponsorsScout APM | We'll donate $5 to the open source project of your choice when you deploy ScoutThe Complete Software Developer's Career Guide - Grab a Copy TodayDo you code in .NET? Check out Adventures in .NETPanelAJ ONealSteve EdwardsSpecial GuestConnell GauldLinksUniversal ARZappar content development toolsPicksSteveLooney TunesAJripgrepConnellDark on NetflixSpecial Guest: Connell Gauld. 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.

18 Elo 202053min

JSJ 444: Coding Front-end JavaScript for Accessibility with Neha Sharma

JSJ 444: Coding Front-end JavaScript for Accessibility with Neha Sharma

In this episode of JavaScript Jabber we interview Neha Sharma about the importance of coding front-end JavaScript with accessibility in mind. She explains practical methods in which to generate accessible UX when using front-end frameworks, such as React and Angular. For example, the importance of generating proper semantic markup, and considering behaviors and responses to user interactions.PanelAJ O’NealAimee KnightDan ShappirGuestNeha SharmaSponsorsScout APM | We'll donate $5 to the open source project of your choice when you deploy ScoutThe Complete Software Developer's Career Guide - Grab a Copy TodayReact Native Remote Conf 2020PicksNeha Sharma:Follow Neha on Twitter > @hellonehhaNader Dabit (@dabit3)AJ O’Neal:Microservices ParodyAHA ProgrammingWindows 10: tar, ssh, curl, pwshYellowstonewebinstall.devAimee Knight:Software should be designed to lastDan Shappir:#javascriptriddleFollow JavaScript Jabber on Twitter > @JSJabber Special Guest: Neha Sharma . 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.

11 Elo 202044min

JSJ 443: All About InertiaJS with Jonathan Reinink

JSJ 443: All About InertiaJS with Jonathan Reinink

The panel talks with Jonathan Reinink about his new library, IntertiaJS. InertiaJS is a tool that allows you to create a monolith server rendered site, but where you write your own custom back end, and then use a front end framework like React, Vue, or Svelte. We discuss how Intertia works at a very granular level, how it compares to tools like Next.js and Nuxt, why monoliths are better than using APIs, how Interita handles authentication and form submissions, and much more.PanelAJ O’NealAimee KnightSteve EdwardsGuestJonathan ReininkSponsorsScout APM | We'll donate $5 to the open source project of your choice when you deploy ScoutReact Native Remote Conf 2020LinksTurbolinks PicksJonathan Reinink:Follow Jonathan on Twitter > @reinink, WebsiteInertia.js - The Modern MonolithLost in SpaceAimee Knight:Our AWS bill is ~ 2% of revenue. Here's how we did itSteve Edwards:ColonoscopyFollow JavaScript Jabber on Twitter > @JSJabber Special Guest: Jonathan Reinink. 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.

4 Elo 20201h 3min

JSJ 442: Breaking Into Tech with Danny Thompson

JSJ 442: Breaking Into Tech with Danny Thompson

Danny Thompson discusses his road to a successful tech career, after working for years outside the industry (frying chicken at gas-stations). He explains the importance of setting goals and following through, and how to overcome adversity, and handle setbacks. It's simultaneously a very inspirational story, but also filled with lots of very practical advice and action items to pursue. For example, the importance of attending and participating in Meetups and engaging with the local tech community.PanelAJ O’NealAimee KnightCharles Max WoodSteve EdwardsDan ShappirGuestDanny Thompson SponsorsG2i | Enjoy the luxuries of freelancingScout APM | We'll donate $5 to the open source project of your choice when you deploy ScoutReact Native Remote Conf 2020LinksAI powered resume builderPicksDanny Thompson:Follow Danny Thompson on Twitter > @DThompsonDevJames Q Quick - YouTubeBrad Traversy - YouTubeFlorin Pop - YouTubeAJ O’Neal:TemplateResumeThis Video Is Sponsored By ███ VPN The Wisdom of the Ancients by Sir Francis Bacon Free AudioBook)Aimee Knight:Amazon Web ServicesEco Performance Bamboo Clothing I Handmade I by TransientCraftCharles Max Wood:The One Funnel Away Challenge!Devchat.tv ConferencesSteve Edwards:xkcd: Wisdom of the AncientsCasablanca (1942) - IMDbDan Shappir:Adopt a puppy or other petFollow JavaScript Jabber on Twitter > @JSJabber Special Guest: Danny Thompson. 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.

28 Heinä 20201h 25min

Suosittua kategoriassa Liike-elämä ja talous

sijotuskasti
mimmit-sijoittaa
rss-rahapodi
psykopodiaa-podcast
ostan-asuntoja-podcast
oppimisen-psykologia
herrasmieshakkerit
sijoituskaverit
hyva-paha-johtaminen
rss-rahamania
rss-lahtijat
kasvun-kipuja
pomojen-suusta
taloudellinen-mielenrauha
yrittaja
rss-h-asselmoilanen
rss-bisnesta-bebeja
rss-yrittajan-mielenmatka
rss-merja-mahkan-rahat
rss-hoyrytetty