- Learn a mental model for thinking about testing that will give you confidence deciding what and how to test
- Get hands-on experience with some of the most popular React Native testing tools
- Find solutions to common React Native testing obstacles and challenges
React Testing Library is a great framework for React component tests because there are a lot of questions it answers for you, so you don’t need to worry about those questions. But that doesn’t mean testing is easy. There are still a lot of questions you have to figure out for yourself: How many component tests should you write vs end-to-end tests or lower-level unit tests? How can you test a certain line of code that is tricky to test? And what in the world are you supposed to do about that persistent act() warning?
In this three-hour workshop we’ll introduce React Testing Library along with a mental model for how to think about designing your component tests. This mental model will help you see how to test each bit of logic, whether or not to mock dependencies, and will help improve the design of your components. You’ll walk away with the tools, techniques, and principles you need to implement low-cost, high-value component tests. Table of contents
- The different kinds of React application tests, and where component tests fit in
- A mental model for thinking about the inputs and outputs of the components you test
- Options for selecting DOM elements to verify and interact with them
- The value of mocks and why they shouldn’t be avoided
- The challenges with asynchrony in RTL tests and how to handle them
So you’ve gotten Detox set up to test your React Native application. Good work! But you aren’t done yet: there are still a lot of questions you need to answer. How many tests do you write? When and where do you run them? How do you ensure there is test data available? What do you do about parts of your app that use mobile APIs that are difficult to automate? You could sink a lot of effort into these things—is the payoff worth it?
In this three-hour workshop we’ll address these questions by discussing how to integrate Detox into your development workflow. You’ll walk away with the skills and information you need to make Detox testing a natural and productive part of day-to-day development.
-
We'll cover:
- Deciding what to test with Detox vs React Native Testing Library vs manual testing
- Setting up a fake API layer for testing
- Getting Detox running on CI on GitHub Actions for free
- Deciding how much of your app to test with Detox: a sliding scale
- Fitting Detox into you local development workflow
Are you satisfied with your test suites? If you said no, you’re not alone—most developers aren’t. And testing in React Native is harder than on most platforms. How can you write JavaScript tests when the JS and native code are so intertwined? And what in the world are you supposed to do about that persistent act() warning? Faced with these challenges, some teams are never able to make any progress testing their React Native app, and others end up with tests that don’t seem to help and only take extra time to maintain.
But it doesn’t have to be this way. React Native Testing Library (RNTL) is a great library for component testing, and with the right mental model you can use it to implement tests that are low-cost and high-value. In this three-hour workshop you’ll learn the tools, techniques, and principles you need to implement tests that will help you ship your React Native app with confidence. You’ll walk away with a clear vision for the goal of your component tests and with techniques that will help you address any obstacle that gets in the way of that goal.
Обход проверки безопасности в магазинах мобильных приложений при помощи платф...Positive Hack Days
В докладе описывается новый вектор атак на магазины приложений с обходом проверки безопасности, которая проводится при публикации приложения в любом магазине приложений. Обычно после публикации мобильного приложения магазины запускают песочницу или проводят тестирование вручную и решают, является ли оно легитимным. Используя платформу Hybrid (например, Cordova), можно обновлять мобильные приложения без согласия пользователя и уведомления магазинов.
This text discusses React Native Interview Questions. It provides insights into common questions that are typically asked during React Native interviews.
ForwardJS 2017 - Fullstack end-to-end Test Automation with node.jsMek Srunyu Stittri
Slide deck for ForwardJS 2017 in San Francisco - March 1st 2017
https://forwardjs.com/schedule#lecture-224
Airware builds hardware, software and cloud for commercial drones. We have transitioned to Node.js for cloud functional test automation in 2015. The purpose of this is to unite Fullstack developers and Automation engineers to speak in the same language which is JavaScript. With a year worth of lessons learnt, we will share the challenges involved with building a full-stack test automation framework with Node.js while using the latest and greatest in JavaScript tools.
PredictionIO - Building Applications That Predict User Behavior Through Big D...predictionio
Building Applications That Predict User Behavior Through Big Data Using Open-Source Technologies
Presented by PredictionIO at Big Data TechCon (Oct 17, 2013)
React Testing Library is a great framework for React component tests because there are a lot of questions it answers for you, so you don’t need to worry about those questions. But that doesn’t mean testing is easy. There are still a lot of questions you have to figure out for yourself: How many component tests should you write vs end-to-end tests or lower-level unit tests? How can you test a certain line of code that is tricky to test? And what in the world are you supposed to do about that persistent act() warning?
In this three-hour workshop we’ll introduce React Testing Library along with a mental model for how to think about designing your component tests. This mental model will help you see how to test each bit of logic, whether or not to mock dependencies, and will help improve the design of your components. You’ll walk away with the tools, techniques, and principles you need to implement low-cost, high-value component tests. Table of contents
- The different kinds of React application tests, and where component tests fit in
- A mental model for thinking about the inputs and outputs of the components you test
- Options for selecting DOM elements to verify and interact with them
- The value of mocks and why they shouldn’t be avoided
- The challenges with asynchrony in RTL tests and how to handle them
So you’ve gotten Detox set up to test your React Native application. Good work! But you aren’t done yet: there are still a lot of questions you need to answer. How many tests do you write? When and where do you run them? How do you ensure there is test data available? What do you do about parts of your app that use mobile APIs that are difficult to automate? You could sink a lot of effort into these things—is the payoff worth it?
In this three-hour workshop we’ll address these questions by discussing how to integrate Detox into your development workflow. You’ll walk away with the skills and information you need to make Detox testing a natural and productive part of day-to-day development.
-
We'll cover:
- Deciding what to test with Detox vs React Native Testing Library vs manual testing
- Setting up a fake API layer for testing
- Getting Detox running on CI on GitHub Actions for free
- Deciding how much of your app to test with Detox: a sliding scale
- Fitting Detox into you local development workflow
Are you satisfied with your test suites? If you said no, you’re not alone—most developers aren’t. And testing in React Native is harder than on most platforms. How can you write JavaScript tests when the JS and native code are so intertwined? And what in the world are you supposed to do about that persistent act() warning? Faced with these challenges, some teams are never able to make any progress testing their React Native app, and others end up with tests that don’t seem to help and only take extra time to maintain.
But it doesn’t have to be this way. React Native Testing Library (RNTL) is a great library for component testing, and with the right mental model you can use it to implement tests that are low-cost and high-value. In this three-hour workshop you’ll learn the tools, techniques, and principles you need to implement tests that will help you ship your React Native app with confidence. You’ll walk away with a clear vision for the goal of your component tests and with techniques that will help you address any obstacle that gets in the way of that goal.
Обход проверки безопасности в магазинах мобильных приложений при помощи платф...Positive Hack Days
В докладе описывается новый вектор атак на магазины приложений с обходом проверки безопасности, которая проводится при публикации приложения в любом магазине приложений. Обычно после публикации мобильного приложения магазины запускают песочницу или проводят тестирование вручную и решают, является ли оно легитимным. Используя платформу Hybrid (например, Cordova), можно обновлять мобильные приложения без согласия пользователя и уведомления магазинов.
This text discusses React Native Interview Questions. It provides insights into common questions that are typically asked during React Native interviews.
ForwardJS 2017 - Fullstack end-to-end Test Automation with node.jsMek Srunyu Stittri
Slide deck for ForwardJS 2017 in San Francisco - March 1st 2017
https://forwardjs.com/schedule#lecture-224
Airware builds hardware, software and cloud for commercial drones. We have transitioned to Node.js for cloud functional test automation in 2015. The purpose of this is to unite Fullstack developers and Automation engineers to speak in the same language which is JavaScript. With a year worth of lessons learnt, we will share the challenges involved with building a full-stack test automation framework with Node.js while using the latest and greatest in JavaScript tools.
PredictionIO - Building Applications That Predict User Behavior Through Big D...predictionio
Building Applications That Predict User Behavior Through Big Data Using Open-Source Technologies
Presented by PredictionIO at Big Data TechCon (Oct 17, 2013)
Ravi Ranjan Mishra is a PHP developer seeking a career opportunity. He has over 2 years of experience developing websites using PHP, MySQL, JavaScript, jQuery, CodeIgniter and other technologies. Some of the projects he has worked on include e-commerce websites, content management systems and mobile apps. He is looking for a challenging role where he can continue growing his skills and contributing to an organization's success.
Contract testing. Isolated testing of microservices with pact.io - Evgeniy Ku...Evgeniy Kuzmin
CTO of Smart Gamma will talk In this speech about the problems that arise when testing applications built on a microservices architecture. We will conduct a brief overview of how to test the interaction between microservices. We will also talk in details about Consumer-Driven Contract Testing with an example of using the pact.io
Евгений Кузьмин, CTO Smart Gamma. Тема его доклада «Contract testing. Изолированное тестирование микросервисной архитектуры».
В этом докладе мы расскажем о проблемах которые возникают при тестировании приложений построенных на микросервисной архитектуре. Проведем краткий обзор способов тестирования взаимодействия между сервисами. А так же подробно поговорим о контрактном тестировании с примером применения инструмента pact.io.
CODEiD – это всеукраинское сообщество PHP-разработчиков. Наша цель — создать сильное сообщество всех, кто увлечен PHP-разработкой, и принимать в нашем уютном приморском городе коллег со всей Украины и мира.
An Introduction to AngularJS End to End Testing using ProtractorCubet Techno Labs
This document summarizes a presentation about end-to-end testing of AngularJS applications using Protractor. It introduces Protractor as an AngularJS testing framework that uses WebDriver and Jasmine to test applications. It describes how Protractor works by controlling browsers through WebDriver and using the Jasmine syntax for writing tests. The document then outlines how to install, configure, and write tests with Protractor including locating elements and interacting with them.
GlobalLogic Test Automation Online TechTalk “Playwright — A New Hope”GlobalLogic Ukraine
8 грудня відбувся Online TechTalk на тему “Playwright — A New Hope” від Ярослава Пернеровського (Consultant, Quality Assurance, GlobalLogic).
Говорили на такі теми:
- Чому потрібні нові інструменти в автоматизації і чи дійсно гегемонія Selenium WebDriver під загрозою;
- Що таке і як працює Playwright, переваги та недоліки в порівнянні з прямими конкурентами;
- Killing Features інструменту — чому вони вам потрібні;
- Швидкий старт і практичне використання.
Відео та деталі заходу: https://bit.ly/32hYp2p
This document provides an overview of React Native, summarizing that it allows building mobile apps using JavaScript and React by rendering UI components to native platform elements. It discusses that React Native uses no HTML, browser or webview, instead being completely powered by JavaScript communicating directly with native platform views. It then demonstrates how to build React Native apps using common components like TouchableHighlight and ListView, inline styles, and platform APIs while also addressing debugging, testing and future considerations.
Talk on how to easily integrate elasticsearch with react. Similar process with remapping of the data schema can yield a knowledge discovery and search application for any industry consuming huge amount of structured or unstructured data
The promise of DevOps is that we can push new ideas out to market faster while avoiding delivering serious defects into production. Andreas Grabner explains that testers are no longer measured by the number of defect reports they enter, nor are developers measured by the lines of code they write. As a team, you are measured by how fast you can deploy high quality functionality to the end user. Achieving this goal requires testers to increase their skills. It’s all about finding solutions—not just problems. Testers must transition from reporting “app crashes” to providing details such as “memory leak caused by bad cache implementation.” Instead of reporting “it’s slow,” testers must discover “wrong hibernate configuration causes too much traffic from the database.” Using three real-life examples, Andreas illustrates what it takes for testing teams to become part of the DevOps transformation—bringing more value to the entire organization.
À partir d’une feuille blanche, vous devez construire une application financière hautement disponible. Elle doit être résiliente, scalable et facilement extensible. Comment faire ? Nous allons relever le défi en partant des principes d’une architecture réactive basée sur des micro-services.
Nous vous proposons d’étudier toutes les problématiques adressées lors de la mise en place de l’application, en passant de l’environnement de développement aux conditions d’exploitations dans le cloud.
Speaker : Nicolas Jozwiak, Xavier Bucchiotty et Vincent Spiewak - Devoxx France 2015
Effective testing of rich internet applicationsRashwin
Protractor is an end-to-end testing framework for AngularJS applications that addresses challenges in testing rich internet applications. It supports locator strategies specific to AngularJS, automatic waiting so manual wait steps are not needed, and works with Selenium WebDriver to simulate user interactions. Protractor uses page object models and integrates with Allure reporting. Compassites has customized Protractor and built a test lab to execute tests across Linux, Windows, and iOS environments.
Contract testing. Getting started with Pact IO.HYS Enterprise
This document discusses contract testing using Pact and the Pact Broker tool. It provides an overview of consumer-driven contract testing, demonstrates setting up a sample consumer and provider project using Java and Maven, and shows how to generate and publish contracts to the Pact Broker. It also covers verifying contracts in the provider project, viewing results in the Pact Broker, and setting up CI/CD pipelines and webhooks for contract testing in Jenkins.
It is a time of developers complain about performance. Rebel developers, striking from a hidden base, have won their first victory against the evil blocking applications.
In this session, attendees will learn about an evolution to a reactive system; we will show how to create a Reactive Application covering tips and tricks of an experience of an evolution the Application and how we evolve to a modern reactive modules; Through the session you are going to get tips, tricks, pros, cons and the reasons for being involved on move forward to non-bloking application and present sample code and explain the security concerns on this evolution. We will be using snippets code based on JAVA, JWT, JWS, Auth0, Spring Boot, Reactor and Webflux deployed on Oracle Cloud.
Shift Remote: Mobile - Devops-ify your life with Github Actions - Nicola Cort...Shift Conference
What's the first thing you should do when starting a new project...? Setup a good CI system! With Github Actions you can do it in a couple of seconds. You can easily setup a workflow to build your project, test it on different machines, and deploy the results. In this talk we're going to see how you can setup a simple Github Action for your repository and start enjoying it right after.
Reconciling ReactJS as a View Layer Replacement (MidwestJS 2014)Zach Lendon
This document discusses React, a JavaScript library for building user interfaces. It notes that React uses virtual DOM for faster rendering. React components render on state changes and use props and state as inputs. Scaling with React involves using Flux architecture and stores instead of MVC controllers. React can also be integrated with other frameworks like Backbone and Angular by triggering re-renders on data changes.
MidwestJS 2014 Reconciling ReactJS as a View Layer ReplacementZach Lendon
This document discusses React, a JavaScript library for building user interfaces. It notes that React uses virtual DOM for faster rendering. React components render on state changes and use props and state as inputs. Scaling with React involves using Flux architecture and stores instead of MVC controllers. React can also be integrated with other frameworks like Backbone and Angular by triggering re-renders on data changes.
Meteor is a reactive web application framework that uses JavaScript on both the client and server. It allows for real-time updates as data changes automatically propagate to connected clients without page refresh. The key aspects of Meteor include its reactivity system using Tracker.autorun, the Distributed Data Protocol (DDP) for client-server communication, and Minimongo which mirrors the MongoDB API in the browser for local data caching and manipulation. Meteor applications have a uniform codebase, use reactive templates, publish-subscribe for data synchronization, and allow building isomorphic apps that run on both client and server with shared code.
Designing Effective Tests with React Testing Library - React Day Berlin 2022Josh Justice
React Testing Library is a great framework for React component tests because there are a lot of questions it answers for you, so you don’t need to worry about those questions. But that doesn’t mean testing is easy. There are still a lot of questions you have to figure out for yourself: How many component tests should you write vs end-to-end tests or lower-level unit tests? How can you test a certain line of code that is tricky to test? And what in the world are you supposed to do about that persistent act() warning?
In this three-hour workshop we’ll introduce React Testing Library along with a mental model for how to think about designing your component tests. This mental model will help you see how to test each bit of logic, whether or not to mock dependencies, and will help improve the design of your components. You’ll walk away with the tools, techniques, and principles you need to implement low-cost, high-value component tests. Table of contents
- The different kinds of React application tests, and where component tests fit in
- A mental model for thinking about the inputs and outputs of the components you test
- Options for selecting DOM elements to verify and interact with them
- The value of mocks and why they shouldn’t be avoided
- The challenges with asynchrony in RTL tests and how to handle them
Building for Mobile and Web with Expo - React Day Berlin 2022Josh Justice
We know that React is for the web and React Native is for Android and iOS. But have you heard of react-native-web—for writing an app for Android, iOS, and the web in one codebase? Just like React Native abstracts away the details of iOS and Android, React Native Web extracts away the details of the browser as well. This opens up the possibility of even more code sharing across platforms.
In this workshop you’ll walk through setting up the skeleton for a React Native Web app that works great and looks awesome. You can use the resulting codebase as a foundation to build whatever app you like on top of it, using the React paradigms and many JavaScript libraries you’re used to. You might be surprised how many types of app don’t really require a separate mobile and web codebase!
More Related Content
Similar to Testing React Native Apps - Chain React 2023
Ravi Ranjan Mishra is a PHP developer seeking a career opportunity. He has over 2 years of experience developing websites using PHP, MySQL, JavaScript, jQuery, CodeIgniter and other technologies. Some of the projects he has worked on include e-commerce websites, content management systems and mobile apps. He is looking for a challenging role where he can continue growing his skills and contributing to an organization's success.
Contract testing. Isolated testing of microservices with pact.io - Evgeniy Ku...Evgeniy Kuzmin
CTO of Smart Gamma will talk In this speech about the problems that arise when testing applications built on a microservices architecture. We will conduct a brief overview of how to test the interaction between microservices. We will also talk in details about Consumer-Driven Contract Testing with an example of using the pact.io
Евгений Кузьмин, CTO Smart Gamma. Тема его доклада «Contract testing. Изолированное тестирование микросервисной архитектуры».
В этом докладе мы расскажем о проблемах которые возникают при тестировании приложений построенных на микросервисной архитектуре. Проведем краткий обзор способов тестирования взаимодействия между сервисами. А так же подробно поговорим о контрактном тестировании с примером применения инструмента pact.io.
CODEiD – это всеукраинское сообщество PHP-разработчиков. Наша цель — создать сильное сообщество всех, кто увлечен PHP-разработкой, и принимать в нашем уютном приморском городе коллег со всей Украины и мира.
An Introduction to AngularJS End to End Testing using ProtractorCubet Techno Labs
This document summarizes a presentation about end-to-end testing of AngularJS applications using Protractor. It introduces Protractor as an AngularJS testing framework that uses WebDriver and Jasmine to test applications. It describes how Protractor works by controlling browsers through WebDriver and using the Jasmine syntax for writing tests. The document then outlines how to install, configure, and write tests with Protractor including locating elements and interacting with them.
GlobalLogic Test Automation Online TechTalk “Playwright — A New Hope”GlobalLogic Ukraine
8 грудня відбувся Online TechTalk на тему “Playwright — A New Hope” від Ярослава Пернеровського (Consultant, Quality Assurance, GlobalLogic).
Говорили на такі теми:
- Чому потрібні нові інструменти в автоматизації і чи дійсно гегемонія Selenium WebDriver під загрозою;
- Що таке і як працює Playwright, переваги та недоліки в порівнянні з прямими конкурентами;
- Killing Features інструменту — чому вони вам потрібні;
- Швидкий старт і практичне використання.
Відео та деталі заходу: https://bit.ly/32hYp2p
This document provides an overview of React Native, summarizing that it allows building mobile apps using JavaScript and React by rendering UI components to native platform elements. It discusses that React Native uses no HTML, browser or webview, instead being completely powered by JavaScript communicating directly with native platform views. It then demonstrates how to build React Native apps using common components like TouchableHighlight and ListView, inline styles, and platform APIs while also addressing debugging, testing and future considerations.
Talk on how to easily integrate elasticsearch with react. Similar process with remapping of the data schema can yield a knowledge discovery and search application for any industry consuming huge amount of structured or unstructured data
The promise of DevOps is that we can push new ideas out to market faster while avoiding delivering serious defects into production. Andreas Grabner explains that testers are no longer measured by the number of defect reports they enter, nor are developers measured by the lines of code they write. As a team, you are measured by how fast you can deploy high quality functionality to the end user. Achieving this goal requires testers to increase their skills. It’s all about finding solutions—not just problems. Testers must transition from reporting “app crashes” to providing details such as “memory leak caused by bad cache implementation.” Instead of reporting “it’s slow,” testers must discover “wrong hibernate configuration causes too much traffic from the database.” Using three real-life examples, Andreas illustrates what it takes for testing teams to become part of the DevOps transformation—bringing more value to the entire organization.
À partir d’une feuille blanche, vous devez construire une application financière hautement disponible. Elle doit être résiliente, scalable et facilement extensible. Comment faire ? Nous allons relever le défi en partant des principes d’une architecture réactive basée sur des micro-services.
Nous vous proposons d’étudier toutes les problématiques adressées lors de la mise en place de l’application, en passant de l’environnement de développement aux conditions d’exploitations dans le cloud.
Speaker : Nicolas Jozwiak, Xavier Bucchiotty et Vincent Spiewak - Devoxx France 2015
Effective testing of rich internet applicationsRashwin
Protractor is an end-to-end testing framework for AngularJS applications that addresses challenges in testing rich internet applications. It supports locator strategies specific to AngularJS, automatic waiting so manual wait steps are not needed, and works with Selenium WebDriver to simulate user interactions. Protractor uses page object models and integrates with Allure reporting. Compassites has customized Protractor and built a test lab to execute tests across Linux, Windows, and iOS environments.
Contract testing. Getting started with Pact IO.HYS Enterprise
This document discusses contract testing using Pact and the Pact Broker tool. It provides an overview of consumer-driven contract testing, demonstrates setting up a sample consumer and provider project using Java and Maven, and shows how to generate and publish contracts to the Pact Broker. It also covers verifying contracts in the provider project, viewing results in the Pact Broker, and setting up CI/CD pipelines and webhooks for contract testing in Jenkins.
It is a time of developers complain about performance. Rebel developers, striking from a hidden base, have won their first victory against the evil blocking applications.
In this session, attendees will learn about an evolution to a reactive system; we will show how to create a Reactive Application covering tips and tricks of an experience of an evolution the Application and how we evolve to a modern reactive modules; Through the session you are going to get tips, tricks, pros, cons and the reasons for being involved on move forward to non-bloking application and present sample code and explain the security concerns on this evolution. We will be using snippets code based on JAVA, JWT, JWS, Auth0, Spring Boot, Reactor and Webflux deployed on Oracle Cloud.
Shift Remote: Mobile - Devops-ify your life with Github Actions - Nicola Cort...Shift Conference
What's the first thing you should do when starting a new project...? Setup a good CI system! With Github Actions you can do it in a couple of seconds. You can easily setup a workflow to build your project, test it on different machines, and deploy the results. In this talk we're going to see how you can setup a simple Github Action for your repository and start enjoying it right after.
Reconciling ReactJS as a View Layer Replacement (MidwestJS 2014)Zach Lendon
This document discusses React, a JavaScript library for building user interfaces. It notes that React uses virtual DOM for faster rendering. React components render on state changes and use props and state as inputs. Scaling with React involves using Flux architecture and stores instead of MVC controllers. React can also be integrated with other frameworks like Backbone and Angular by triggering re-renders on data changes.
MidwestJS 2014 Reconciling ReactJS as a View Layer ReplacementZach Lendon
This document discusses React, a JavaScript library for building user interfaces. It notes that React uses virtual DOM for faster rendering. React components render on state changes and use props and state as inputs. Scaling with React involves using Flux architecture and stores instead of MVC controllers. React can also be integrated with other frameworks like Backbone and Angular by triggering re-renders on data changes.
Meteor is a reactive web application framework that uses JavaScript on both the client and server. It allows for real-time updates as data changes automatically propagate to connected clients without page refresh. The key aspects of Meteor include its reactivity system using Tracker.autorun, the Distributed Data Protocol (DDP) for client-server communication, and Minimongo which mirrors the MongoDB API in the browser for local data caching and manipulation. Meteor applications have a uniform codebase, use reactive templates, publish-subscribe for data synchronization, and allow building isomorphic apps that run on both client and server with shared code.
Similar to Testing React Native Apps - Chain React 2023 (20)
Designing Effective Tests with React Testing Library - React Day Berlin 2022Josh Justice
React Testing Library is a great framework for React component tests because there are a lot of questions it answers for you, so you don’t need to worry about those questions. But that doesn’t mean testing is easy. There are still a lot of questions you have to figure out for yourself: How many component tests should you write vs end-to-end tests or lower-level unit tests? How can you test a certain line of code that is tricky to test? And what in the world are you supposed to do about that persistent act() warning?
In this three-hour workshop we’ll introduce React Testing Library along with a mental model for how to think about designing your component tests. This mental model will help you see how to test each bit of logic, whether or not to mock dependencies, and will help improve the design of your components. You’ll walk away with the tools, techniques, and principles you need to implement low-cost, high-value component tests. Table of contents
- The different kinds of React application tests, and where component tests fit in
- A mental model for thinking about the inputs and outputs of the components you test
- Options for selecting DOM elements to verify and interact with them
- The value of mocks and why they shouldn’t be avoided
- The challenges with asynchrony in RTL tests and how to handle them
Building for Mobile and Web with Expo - React Day Berlin 2022Josh Justice
We know that React is for the web and React Native is for Android and iOS. But have you heard of react-native-web—for writing an app for Android, iOS, and the web in one codebase? Just like React Native abstracts away the details of iOS and Android, React Native Web extracts away the details of the browser as well. This opens up the possibility of even more code sharing across platforms.
In this workshop you’ll walk through setting up the skeleton for a React Native Web app that works great and looks awesome. You can use the resulting codebase as a foundation to build whatever app you like on top of it, using the React paradigms and many JavaScript libraries you’re used to. You might be surprised how many types of app don’t really require a separate mobile and web codebase!
Building for Mobile and Web with Expo - React Advanced London 2022Josh Justice
We know that React is for the web and React Native is for Android and iOS. But have you heard of react-native-web—for writing an app for Android, iOS, and the web in one codebase? Just like React Native abstracts away the details of iOS and Android, React Native Web extracts away the details of the browser as well. This opens up the possibility of even more code sharing across platforms.
In this workshop you’ll walk through setting up the skeleton for a React Native Web app that works great and looks awesome. You can use the resulting codebase as a foundation to build whatever app you like on top of it, using the React paradigms and many JavaScript libraries you’re used to. You might be surprised how many types of app don’t really require a separate mobile and web codebase!
Getting Better All the Time: How to Escape Bad CodeJosh Justice
What do you do when you need to work with some really bad code? It seems like a no-win situation: whether you rewrite it, do a ""refactoring sprint,"" or just live with it, you have to pay a big cost. But these aren't the only options. There's a way to get control of your code so that you can make whatever improvements you need in a low-stress, low-cost way. To explain how, this talk is split into two parts. In the first part we'll look at a messy React Native component and see how effortless it is to make improvements to the code if you have comprehensive tests. In the second part we'll tackle that big ""if:"" how in the world can you get comprehensive tests like that? By the end of this talk you'll have the information to decide if this approach to testing and refactoring will help your project, and if so, you'll have next steps to hone your skills in this approach.
Sustainable Learning - ReactATL Jan 2022Josh Justice
How do you learn to program? How do you *keep* learning to program, as new languages, libraries, and platforms are released? The amount of information out there can be overwhelming, especially in React. Whether you're just out of a Bootcamp, switching technologies, or just trying to keep up, it can feel impossible to find the time to learn.
In this talk, Josh Justice will share an approach to learning that he stumbled upon in the process of making two major technology career shifts within three years. It's a way to avoid mistakes that may be hindering your learning, make the flow of information manageable, solidify your skills, and feel motivated all along the way. Everyone's background and life circumstances are different, but this talk will offer tools and ideas that you can apply in a way that works for you.
Building an App for Mobile and Web with ExpoJosh Justice
react-native-web is a library that allows you to take the same React Native codebase you deploy to Android and iOS and deploy it to the web as well. The recommended way to get started with react-native-web is with Expo, which includes web support.
To learn more about react-native-web, let's look at an open-source app that was recently released on iOS and the web. We'll look at ways to set up URLs, responsive design, and dark theme, cases where you need different code for the web, and testing options that are unlocked by the web. We'll also talk about how to choose between React, React Native, and Expo for your next project.
User-Modifiable Software: Smalltalk and HyperCardJosh Justice
When software doesn’t fully meet the needs of its user, what are the user’s options? For commercial software, the user can lobby the manufacturer for the feature they need—but the manufacturer may not respond. For open-source software, the user can fork the repo and add the feature themselves—but this requires becoming a developer on the platform the app is written in.
But there have been better options in the past history of computing: software platforms that allow users to inspect the code of their software and modify it in the same environment the software runs in. With these software platforms, anyone using the application already has all the tooling they need to see how the application works and modify it. Platforms like this have played a significant role in the advancement of personal computing; can they do so again? This talk presents two such user-modifiable software systems: Smalltalk and HyperCard. Based on research into these systems’ origins, properties, and impact, it offers seven insights from them that can be applied to current and future user-modifiable systems.
There are a lot of talks about why it’s important to make your app accessible to non-sighted users and others, but it’s hard to know how to get started. This talk walks through how to read the official web accessibility standards, three automated tools that can help, and two manual testing approaches you can take. It should equip you to make major strides toward accessibility.
JavaScript test tooling has advanced a lot in the last few years, but tooling can’t solve everything—we still have decisions to make about how to optimally set up our tests. It would be great if we could learn from experienced testers who came before us, but it can be difficult to follow writing about testing in a programming language we aren’t familiar with.
Luckily, there’s one book in particular that has a lot of language-agnostic testing wisdom to share: xUnit Test Patterns. We’ll walk through some of the “test smells” it describes and see examples of how they commonly arise in JavaScript, then we’ll apply the principles from the book to solve these problems. You’ll walk away from this session with more tools in your tool belt to solve testing problems, and clearer language to talk about the tools you already have.
Test-Driven Development in Vue with CypressJosh Justice
As your Vue app grows, are you slowed down by fragile or difficult-to-understand code? Test-Driven Development can help! It makes your code simpler, easier to refactor, and quicker to ship. We'll walk through a demonstration of using Cypress tests with Vue CLI 3 to drive your code for a higher-quality codebase.
Test-Driven Development in React with CypressJosh Justice
As your React app grows, are you slowed down by fragile or difficult-to-understand code? Test-Driven Development can help! It makes your code simpler, easier to refactor, and quicker to ship. We'll walk through a demonstration of using Cypress tests to drive your code for a higher-quality codebase.
Newbie's Guide to Contributing to BabelJosh Justice
Babel is a tool many JavaScript developers use to enable writing modern language features on all platforms. It’s incredibly useful, but for most of us it feels like a mysterious black box. We just drop in preset-env and we’re set! It’s great that it’s so easy to get started with Babel, but there’s also value in understanding how it works.
I got to spend a week contributing to the upcoming private class fields feature for Babel. During that week, I went from knowing nothing about how Babel works to being able to fix some failing tests and implement new edge cases. As part of this process, I had to get up to speed quickly on Babel’s plugin and transformation systems. And I’d like to share what I learned with you.
Outside-in Testing in Vue with CypressJosh Justice
As apps grow, development tends to slow down due to fragile or difficult-to-understand code. Test-Driven Development can help! It can make your code simpler, easier to refactor, and quicker to ship. We’ll walk through a demonstration of using Cypress tests to drive your code for a higher-quality codebase.
E-Invoicing Implementation: A Step-by-Step Guide for Saudi Arabian CompaniesQuickdice ERP
Explore the seamless transition to e-invoicing with this comprehensive guide tailored for Saudi Arabian businesses. Navigate the process effortlessly with step-by-step instructions designed to streamline implementation and enhance efficiency.
E-commerce Development Services- Hornet DynamicsHornet Dynamics
For any business hoping to succeed in the digital age, having a strong online presence is crucial. We offer Ecommerce Development Services that are customized according to your business requirements and client preferences, enabling you to create a dynamic, safe, and user-friendly online store.
How Can Hiring A Mobile App Development Company Help Your Business Grow?ToXSL Technologies
ToXSL Technologies is an award-winning Mobile App Development Company in Dubai that helps businesses reshape their digital possibilities with custom app services. As a top app development company in Dubai, we offer highly engaging iOS & Android app solutions. https://rb.gy/necdnt
Using Query Store in Azure PostgreSQL to Understand Query PerformanceGrant Fritchey
Microsoft has added an excellent new extension in PostgreSQL on their Azure Platform. This session, presented at Posette 2024, covers what Query Store is and the types of information you can get out of it.
Liberarsi dai framework con i Web Component.pptxMassimo Artizzu
In Italian
Presentazione sulle feature e l'utilizzo dei Web Component nell sviluppo di pagine e applicazioni web. Racconto delle ragioni storiche dell'avvento dei Web Component. Evidenziazione dei vantaggi e delle sfide poste, indicazione delle best practices, con particolare accento sulla possibilità di usare web component per facilitare la migrazione delle proprie applicazioni verso nuovi stack tecnologici.
Preparing Non - Technical Founders for Engaging a Tech AgencyISH Technologies
Preparing non-technical founders before engaging a tech agency is crucial for the success of their projects. It starts with clearly defining their vision and goals, conducting thorough market research, and gaining a basic understanding of relevant technologies. Setting realistic expectations and preparing a detailed project brief are essential steps. Founders should select a tech agency with a proven track record and establish clear communication channels. Additionally, addressing legal and contractual considerations and planning for post-launch support are vital to ensure a smooth and successful collaboration. This preparation empowers non-technical founders to effectively communicate their needs and work seamlessly with their chosen tech agency.Visit our site to get more details about this. Contact us today www.ishtechnologies.com.au
14 th Edition of International conference on computer visionShulagnaSarkar2
About the event
14th Edition of International conference on computer vision
Computer conferences organized by ScienceFather group. ScienceFather takes the privilege to invite speakers participants students delegates and exhibitors from across the globe to its International Conference on computer conferences to be held in the Various Beautiful cites of the world. computer conferences are a discussion of common Inventions-related issues and additionally trade information share proof thoughts and insight into advanced developments in the science inventions service system. New technology may create many materials and devices with a vast range of applications such as in Science medicine electronics biomaterials energy production and consumer products.
Nomination are Open!! Don't Miss it
Visit: computer.scifat.com
Award Nomination: https://x-i.me/ishnom
Conference Submission: https://x-i.me/anicon
For Enquiry: Computer@scifat.com
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdfVALiNTRY360
Salesforce Healthcare CRM, implemented by VALiNTRY360, revolutionizes patient management by enhancing patient engagement, streamlining administrative processes, and improving care coordination. Its advanced analytics, robust security, and seamless integration with telehealth services ensure that healthcare providers can deliver personalized, efficient, and secure patient care. By automating routine tasks and providing actionable insights, Salesforce Healthcare CRM enables healthcare providers to focus on delivering high-quality care, leading to better patient outcomes and higher satisfaction. VALiNTRY360's expertise ensures a tailored solution that meets the unique needs of any healthcare practice, from small clinics to large hospital systems.
For more info visit us https://valintry360.com/solutions/health-life-sciences
8 Best Automated Android App Testing Tool and Framework in 2024.pdfkalichargn70th171
Regarding mobile operating systems, two major players dominate our thoughts: Android and iPhone. With Android leading the market, software development companies are focused on delivering apps compatible with this OS. Ensuring an app's functionality across various Android devices, OS versions, and hardware specifications is critical, making Android app testing essential.
1. Testing React Native Apps
As you get settled, write the answer to the following
question on Post-It notes. Write as many answers on
separates notes as you like. When you're done, put them
on the back wall.
What do you want to learn about testing in this workshop?
Testing React Native Apps - Josh Justice - Chain React - 2023-05-17 - https://rnte.st/cr23
8. Thank you, assistants!
— David Leuiliette
— Jon Major Condon
Testing React Native Apps - Josh Justice - Chain React - 2023-05-17 - https://rnte.st/cr23
9. Answer the following two questions on Post-It notes.
Then discuss your answers with your group. Choose
someone who will summarize your group's answers to
the whole workshop afterward.
1. What benefits are you currently getting from
testing?
2. What are your testing pain points?
Testing React Native Apps - Josh Justice - Chain React - 2023-05-17 - https://rnte.st/cr23
23. "A component contract is the agreement between a
component and the rest of the application."
-- Edd Yerburgh, Testing Vue.js Applications
Testing React Native Apps - Josh Justice - Chain React - 2023-05-17 - https://rnte.st/cr23
24. "Other components can assume the component will
fulfill its contractual agreement and produce the agreed
output if it’s provided the correct input."
-- Edd Yerburgh, Testing Vue.js Applications
Testing React Native Apps - Josh Justice - Chain React - 2023-05-17 - https://rnte.st/cr23
25. Discuss:
What are some of the kinds
of inputs and outputs that
components have?
Testing React Native Apps - Josh Justice - Chain React - 2023-05-17 - https://rnte.st/cr23
26. Testing the Contract
Inputs:
— Props
— User interaction events
Outputs:
— Rendered UI
— Calls to function props
Testing React Native Apps - Josh Justice - Chain React - 2023-05-17 - https://rnte.st/cr23
27. Testing the Contract
Inputs:
— Props
— User interaction events
Outputs:
— Rendered UI
— Calls to function props
Testing React Native Apps - Josh Justice - Chain React - 2023-05-17 - https://rnte.st/cr23
28. To the code!
Testing React Native Apps - Josh Justice - Chain React - 2023-05-17 - https://rnte.st/cr23
34. Which Query Should I Use?
callstack.github.io/react-native-testing-library/docs/how-should-i-query
"your test should resemble how users interact with your
code (component, page, etc.) as much as possible"
Testing React Native Apps - Josh Justice - Chain React - 2023-05-17 - https://rnte.st/cr23
35. Which Query Should I Use?
callstack.github.io/react-native-testing-library/docs/how-should-i-query
Testing React Native Apps - Josh Justice - Chain React - 2023-05-17 - https://rnte.st/cr23
36. Note on getByRole()
screen.getByRole('button', {name: 'Save Changes'})
— May become the top recommendation soon
— Feature needed first: implicit roles (Pressables
queryable as button by default)
Testing React Native Apps - Josh Justice - Chain React - 2023-05-17 - https://rnte.st/cr23
68. Question:
Do you think mocks involve
testing implementation
details or not?
Testing React Native Apps - Josh Justice - Chain React - 2023-05-17 - https://rnte.st/cr23
69. My view:
Mocks are an important
part of testing the contract.
Testing React Native Apps - Josh Justice - Chain React - 2023-05-17 - https://rnte.st/cr23
70. Testing the Contract
Inputs:
✅
Props
✅
User interaction events
Outputs:
✅
Rendered UI
- Calls to function props
Testing React Native Apps - Josh Justice - Chain React - 2023-05-17 - https://rnte.st/cr23
71. Testing the Contract
Inputs:
✅
Props
✅
User interaction events
Outputs:
✅
Rendered UI
✅
Calls to function props
Testing React Native Apps - Josh Justice - Chain React - 2023-05-17 - https://rnte.st/cr23
89. To the code!
Testing React Native Apps - Josh Justice - Chain React - 2023-05-17 - https://rnte.st/cr23
90. Component Testing
As a group, come up a way to explain what "testing the
contract" of a component means to other developers.
Use the poster in your area. You can write a bulleted list,
use diagrams, draw a picture to use a metaphor, etc.
Feel free to get creative!
After, your group will present your board to the
workshop.
Testing React Native Apps - Josh Justice - Chain React - 2023-05-17 - https://rnte.st/cr23
93. Choosing an E2E Test
Library
Testing React Native Apps - Josh Justice - Chain React - 2023-05-17 - https://rnte.st/cr23
94. — Runs on Hardware
— Runs on Sauce Labs and AWS
Device Farm
— Runs completely outside your
app
— Have to use multiple libraries
together
— Hard to find complete
documentation
— Tests tend to be flaky
Testing React Native Apps - Josh Justice - Chain React - 2023-05-17 - https://rnte.st/cr23
95. Detox
— Write tests in JavaScript or
TypeScript
— Has inside knowledge of your
app
— Expo not officially supported
— Can be complex to set up
— Does not run on physical iOS
devices yet
Testing React Native Apps - Josh Justice - Chain React - 2023-05-17 - https://rnte.st/cr23
96. Maestro
— Easy setup, a single library
— Runs completely outside your
app
— Maestro Studio to
interactively write commands
— New; rough edges
Testing React Native Apps - Josh Justice - Chain React - 2023-05-17 - https://rnte.st/cr23
97. To the code!
Testing React Native Apps - Josh Justice - Chain React - 2023-05-17 - https://rnte.st/cr23
116. What's a fake?
A version of the service that acts similar to the real thing
but stores its data in-memory
Testing React Native Apps - Josh Justice - Chain React - 2023-05-17 - https://rnte.st/cr23
117. To the code!
Testing React Native Apps - Josh Justice - Chain React - 2023-05-17 - https://rnte.st/cr23
125. Recommendation:
— Automate testing against a fake
— Manually test integration with real service
— If you need to automate testing with real service, do
a small separate test suite
Testing React Native Apps - Josh Justice - Chain React - 2023-05-17 - https://rnte.st/cr23
126. End-to-End Testing
As a group, pick one of your group members' apps and
come up with a list of the most valuable scenarios you
would end-to-end test. Write each on a Post-It note and
put it on your poster. If there are any you're uncertain
how you would write a test for, discuss them as a group.
Nominate someone to present your scenarios and
questions to the whole workshop.
Testing React Native Apps - Josh Justice - Chain React - 2023-05-17 - https://rnte.st/cr23
128. How much of each type of
test to do?
Testing React Native Apps - Josh Justice - Chain React - 2023-05-17 - https://rnte.st/cr23
129. Tradeoffs
— End-to-End Tests: give confidence the whole app
works
— Unit and Component Tests: faster, easier, less flaky
testing of edge cases, influence design of code
Testing React Native Apps - Josh Justice - Chain React - 2023-05-17 - https://rnte.st/cr23
130. My Recommendations
— End-to-end test main flows only
— Component test edge cases
— Extract plain functions and classes when it makes
sense, and unit test them
— Tweak as you go
Testing React Native Apps - Josh Justice - Chain React - 2023-05-17 - https://rnte.st/cr23
131. To Discuss
Write the answer to the following question on Post-It
note. Use as many as you need:
Based on what you learned today, what specifically do
you want to do differently testing your React app
going forward?
Afterward we'll go around the room and each share our
answers!
Testing React Native Apps - Josh Justice - Chain React - 2023-05-17 - https://rnte.st/cr23
135. Effective Detox Testing
Oct 25, 2023 -Virtual
— CI on GitHub Actions
— Detox local development
workflow
— When Detox vs RNTL vs
manual
— How much to test with Detox
Testing React Native Apps - Josh Justice - Chain React - 2023-05-17 - https://rnte.st/cr23