A walkthrough the main principles to reach solid NodeJS Applications with TypeScript language, Jest as Test Runner and NestJS as framework for structure.
Slides da palestra apresentada na BrazilJS Manaus. Nesta apresentação faço uma pequena comparativa entre arquiteturas de software para node usando Express e Node, e apresentando um pouco de como o Nest funciona.
Slides from the NestJS MasterClass.
We learned how to build JavaScript server-side applications with NestJS - A progressive NodeJS framework built with TypeScript.
You can find the code on GitHub:
https://github.com/nirkaufman/task-manager
Talk a respeito de testes automatizados no frontend (E2E, integração, unitários e visual), dando destaque a aplicações React. A talk foca na utilização da biblioteca react-testing-library desenvolvida por Kent C. Dodds em 2018. Nela, explico o porquê de optarmos por ela, em quais casos ela melhor se aplica e dou alguns exemplos de utilização.
A walkthrough the main principles to reach solid NodeJS Applications with TypeScript language, Jest as Test Runner and NestJS as framework for structure.
Slides da palestra apresentada na BrazilJS Manaus. Nesta apresentação faço uma pequena comparativa entre arquiteturas de software para node usando Express e Node, e apresentando um pouco de como o Nest funciona.
Slides from the NestJS MasterClass.
We learned how to build JavaScript server-side applications with NestJS - A progressive NodeJS framework built with TypeScript.
You can find the code on GitHub:
https://github.com/nirkaufman/task-manager
Talk a respeito de testes automatizados no frontend (E2E, integração, unitários e visual), dando destaque a aplicações React. A talk foca na utilização da biblioteca react-testing-library desenvolvida por Kent C. Dodds em 2018. Nela, explico o porquê de optarmos por ela, em quais casos ela melhor se aplica e dou alguns exemplos de utilização.
NestJS (https://nestjs.com/) is a Node.js framework for building server-side applications. This slide give you a brief introduction of Nest, and shows the examples like Service, Middleware, and Pipe, etc.
A summary of clean code concepts and tips along with some examples and good practices.
These are the slides translated in English from my talk on Clean Code to my coworkers back then
Apresentação sobre NestJS, framework Node.js e Typescript, com explicação do seu funcionamento e exemplos práticos de como utiliza-lo para criar aplicações do lado servidor.
Evento: OpenLabs 2019 - VI Conferência de Tecnologia da Região Serrana - 31/03/2019
Disponível também em: https://github.com/openlabsconf/openlabs-vi
Site do evento: http://openlabsconf.com.br/
This talk is about Nestjs and how it can help you build clean Nodejs backend apps, we will be covering also essential web development and JavaScript must know technologies and tools such as TypeScript and others.
Testcontainers - Geekout EE 2017 presentationRichard North
Unit testing our code on the JVM is well catered for with a lot of great tools that are mature and reliable – things tend to just work. Integrated testing, however, is another matter. Any time we face a situation where we need to involve non-JVM elements in our tests, we’re faced with painful environment setup and repeatability issues. Testcontainers aims to make integrated tests a little less unpleasant, through the power of Docker. Databases, Web browsers – in fact anything available as a Docker image – can be made available as a component to use in our tests.
In this talk, we’ll go through the motivations for building Testcontainers, its features, as well as some examples of using it in practice for testing various types of components.
Threading Made Easy! A Busy Developer’s Guide to Kotlin CoroutinesLauren Yew
Kotlin Coroutines is a powerful threading library for Kotlin, released by JetBrains in 2018. At The New York Times, we recently migrated our core libraries and parts of our News app from RxJava to Kotlin Coroutines. In this talk we’ll share lessons learned and best practices to understand, migrate to, and use Kotlin Coroutines & Flows.
In this presentation, you will learn:
What Coroutines are and how they function
How to use Kotlin Coroutines & Flows (with real world examples and demos)
Where and why you should use Coroutines & Flows in your app
How to avoid the pitfalls of Coroutines
Kotlin Coroutines vs. RxJava
Lessons learned from migrating to Kotlin Coroutines from RxJava in large legacy projects & libraries
By the end of this talk, you will be able to apply Kotlin Coroutines to your own app, run the provided sample code yourself, and convince your team to give Kotlin Coroutines a try!
Logging tracing and metrics in .NET Core and Azure - dotnetdays 2020Alex Thissen
Conference: dotnetdays 2020
Location: Iaşi, Romania
Abstract: Ever had production problems and found that you cannot debug to find the problem? Or that you need to find out where potential issues are coming from in your Azure cloud solution and you have no idea what is happening?
Your applications need to be instrumented with logging, tracing and metrics, so you can see what is going on where. In .NET Core logging and tracing are built into the framework. We will have a look at the differences between logging, tracing and instrumentation in general.
You will learn how to use .NET Core to implement logging and tracing with best practices, do semantic logging, work with logging factories, trace providers. Also, you will learn how to instrument using Application Insights and add W3C compliant tracing for correlation across cloud resources in a distributed application.
Finally, we will put everything together to see how your logs and traces can give a rich way to get insights into your applications and services running in the Azure cloud or container based solutions.
This Edureka "Node.js Express tutorial" will help you to learn the Node.js express fundamentals with examples. Express.js is flexible and minimal node.js web application framework that provides robust set of features to develop mobile and web applications. It facilitates the rapid development of node.js applications. Below are the topics covered in this tutorial:
1) Why Express.js?
2) What is Express.js?
3) Express Installation
4) Express Routes
5) Express Middlewares
상업적 이용 및 출처없는 무단전재를 금합니다.
애자일과 애자일 테스트 소개 (테스트기본교육 3장 2절)
애자일의 스크럼, XP에 대한 기본적인 소개와 스크럼 팀 안에서 테스트 역할자로써 사용자 스토리 리뷰, 테스트 설계, 짝 테스트, 테스트 자동화 등에 대한 내용을 사례 기반으로 소개하고 있습니다.
NestJS (https://nestjs.com/) is a Node.js framework for building server-side applications. This slide give you a brief introduction of Nest, and shows the examples like Service, Middleware, and Pipe, etc.
A summary of clean code concepts and tips along with some examples and good practices.
These are the slides translated in English from my talk on Clean Code to my coworkers back then
Apresentação sobre NestJS, framework Node.js e Typescript, com explicação do seu funcionamento e exemplos práticos de como utiliza-lo para criar aplicações do lado servidor.
Evento: OpenLabs 2019 - VI Conferência de Tecnologia da Região Serrana - 31/03/2019
Disponível também em: https://github.com/openlabsconf/openlabs-vi
Site do evento: http://openlabsconf.com.br/
This talk is about Nestjs and how it can help you build clean Nodejs backend apps, we will be covering also essential web development and JavaScript must know technologies and tools such as TypeScript and others.
Testcontainers - Geekout EE 2017 presentationRichard North
Unit testing our code on the JVM is well catered for with a lot of great tools that are mature and reliable – things tend to just work. Integrated testing, however, is another matter. Any time we face a situation where we need to involve non-JVM elements in our tests, we’re faced with painful environment setup and repeatability issues. Testcontainers aims to make integrated tests a little less unpleasant, through the power of Docker. Databases, Web browsers – in fact anything available as a Docker image – can be made available as a component to use in our tests.
In this talk, we’ll go through the motivations for building Testcontainers, its features, as well as some examples of using it in practice for testing various types of components.
Threading Made Easy! A Busy Developer’s Guide to Kotlin CoroutinesLauren Yew
Kotlin Coroutines is a powerful threading library for Kotlin, released by JetBrains in 2018. At The New York Times, we recently migrated our core libraries and parts of our News app from RxJava to Kotlin Coroutines. In this talk we’ll share lessons learned and best practices to understand, migrate to, and use Kotlin Coroutines & Flows.
In this presentation, you will learn:
What Coroutines are and how they function
How to use Kotlin Coroutines & Flows (with real world examples and demos)
Where and why you should use Coroutines & Flows in your app
How to avoid the pitfalls of Coroutines
Kotlin Coroutines vs. RxJava
Lessons learned from migrating to Kotlin Coroutines from RxJava in large legacy projects & libraries
By the end of this talk, you will be able to apply Kotlin Coroutines to your own app, run the provided sample code yourself, and convince your team to give Kotlin Coroutines a try!
Logging tracing and metrics in .NET Core and Azure - dotnetdays 2020Alex Thissen
Conference: dotnetdays 2020
Location: Iaşi, Romania
Abstract: Ever had production problems and found that you cannot debug to find the problem? Or that you need to find out where potential issues are coming from in your Azure cloud solution and you have no idea what is happening?
Your applications need to be instrumented with logging, tracing and metrics, so you can see what is going on where. In .NET Core logging and tracing are built into the framework. We will have a look at the differences between logging, tracing and instrumentation in general.
You will learn how to use .NET Core to implement logging and tracing with best practices, do semantic logging, work with logging factories, trace providers. Also, you will learn how to instrument using Application Insights and add W3C compliant tracing for correlation across cloud resources in a distributed application.
Finally, we will put everything together to see how your logs and traces can give a rich way to get insights into your applications and services running in the Azure cloud or container based solutions.
This Edureka "Node.js Express tutorial" will help you to learn the Node.js express fundamentals with examples. Express.js is flexible and minimal node.js web application framework that provides robust set of features to develop mobile and web applications. It facilitates the rapid development of node.js applications. Below are the topics covered in this tutorial:
1) Why Express.js?
2) What is Express.js?
3) Express Installation
4) Express Routes
5) Express Middlewares
상업적 이용 및 출처없는 무단전재를 금합니다.
애자일과 애자일 테스트 소개 (테스트기본교육 3장 2절)
애자일의 스크럼, XP에 대한 기본적인 소개와 스크럼 팀 안에서 테스트 역할자로써 사용자 스토리 리뷰, 테스트 설계, 짝 테스트, 테스트 자동화 등에 대한 내용을 사례 기반으로 소개하고 있습니다.
Scala, Spring-Boot, JPA를 활용한 웹 애플리케이션 개발 과정에 대해 다룬다. Spring-Boot와 JPA 조합만으로도 생산성 있는 웹 애플리케이션 개발이 가능하다. 이 조합만으로도 충분히 의미가 있지만 여기에 Scala라는 약간은 불편한 듯 보이는 언어를 도입함으로써 얻을 수 있는 즐거움을 공유한다. Spring-Boot + JPA 조합에 Scala를 적용하면서의 좌충우돌 경험담을 전한다.
어느날 우연히 스위처 소방수로 참여해서 2달 동안 수행한 일들을 공유합니다. 그 첫번재 이야기 ‘기본을 지키자’ 입니다.
전체를 리드하면서 업무를 진행해본 첫 경험이기도 했고, 유저가 증가하며 서비스되고 있는 프로젝트를 A to Z로 혼자 감당해본 첫 경험이기도 했습니다.
새로운 서버를 설계하고 개발하면서, 레거시 안정화 및 이슈 응대를 모두 병행하는게 쉬운 일은 아니었지만, 핑계대지 않고 하나하나 기본을 다져 보았습니다!
아직 갈길이 멀었지만, 성장해가는 아이오(스위처)의 소프트웨어 이야기를 하나씩 하나씩 풀어보려 합니다 ;)
『이펙티브 디버깅』 - 디버깅 지옥에서 탈출하는 66가지 전략과 기법복연 이
『이펙티브 디버깅』 디버깅 지옥에서 탈출하는 66가지 전략과 기법
디오미디스 스피넬리스 지음 | 남기혁 옮김 | 한빛미디어 | 24,000원
★ 소프트웨어의 완성은 디버깅!
이 책은 경험이 풍부한 개발자를 대상으로 소프트웨어를 완성하는 마지막 기술을 가르친다. 저자는 35년 경험에서 깨우친 일반 원칙, 높은 수준의 전략, 구체적인 기술에 관한 조언, 효율 높은 도구, 창의적인 기법, 효과적인 디버깅과 관련된 행동 특성을 제시한다. 저자가 제안하는 66개의 전문 기법을 통해 디버깅 역량을 확장하고, 각 문제 상황에 맞는 최상의 접근법을 선택할 수 있을 것이다.
★ 주요 내용
다양한 소프트웨어 장애를 해결하는 높은 수준의 전략과 방법
프로그래밍, 컴파일, 실행 시 적용할 구체적인 기법
디버거를 최대한 활용하는 방법
믿고 투자해도 좋은 범용 기술과 도구
막다른 길과 복잡한 미궁에서 탈출하는 첨단 아이디어와 기법
디버깅하기 쉬운 프로그램을 만들기 위한 조언
멀티스레딩, 비동기, 임베디드 코드 디버깅에 특화된 접근법
향상된 소프트웨어 설계, 구축, 관리를 통한 버그 회피법
6. BDD defined
66
잘 정의된 상태와 상호 작용하는 주기를 설명하며, 중요한
작동 테스트를 거친 SW 를 제공한다
outside-in
pull-based
multiple stakeholder
multiple scale,
high automation
agile methodology
https://en.wikipedia.org/wiki/Behavior-driven_development
7. The power of “should”
77
개발에 완성도를 위한 사용자 관점의 테스트
“Should it really?” 라고 묻도록 독려
삼각 측량에 따른 제품 완성도 함양
구현 결함
충족된 구현의 이상 반응
요구사항에 결함
발생 가능한 요구사항 도출의 결여
9. How does BDD help?
99
모두가 함께 명세와 비즈니스 가치 도출 필요
모두가 이해할 수 ubiquitous language 로 작성
자동화 할 수 있는 acceptance test 로 전환하기
지속적인 빌드를 통한 테스트
모두가 이해할 수 있는 가독성 있는 문서화 도출
Living Documentation
13. ACCEPTANCE CRITERIA
사용자, 고객 또는 시스템 수준의 충족되어야 하는 조건
기능 및 비기능적 요구사항에 대한 명확한 통과/실패 결과
인수 기준은 모든 사람이 이해할 수 있는
사용자 스토리에 대한 시나리오
작업의 독립적인 완료 기준 (What. Not How)
테스트 (현실적인 예제 기반)
기능에 대한 명세
긴밀한 협업 지향
명확한 검토를 통한 개발
신뢰와 확신 구축
고객 중심의 개발
유비쿼터스 랭기지를 통한 공통의 이해 촉진
1313
23. 2323
Cucumber is a tool that supports Behaviour-Driven
Development(BDD)
Write features in plain text
Validates that the software does what those specifications say
Business readable DSL
28. What is Cucumber?
2828
시나리오에는 Step 목록이
존재하며 이를 통해
테스트를 수행한다.
Cucumber 시나리오를
이해하기 위해서는 기본
문법과 규칙을 사용해야
하며 이를 Gherkin 이라
부른다.
Plan text
Table
35. What is Gherkin?
35
Unambiguous executable
specification
Automated testing using
Cucumber
Document how the
system actually behaves
삼각 측량을 통해 케이스 별 시나리오/스텝 구성
36. What is Gherkin?
3636
Primary keywords
Feature
Background
Scenario
Given
When
Then
And
But
*
Scenario Outline
Examples
Secondary keywords
""" (Doc Strings)
| (Data Tables)
@ (Tags)
# (Comments)
Feature 제목
기능에 대한 설명
(사용자 스토리)
Test 실행과는 무관한 문서 요소
기능에 대한 시나리오로 다수의
step 으로 구성되며 테스트로 실행
39. Feature
소프트웨어 기능에 대한 상위 수준의 설명을 제공하고 관련
시나리오를 그룹화한다.
첫 번째 기본 키워드는 기능을 명시한다.
그 다음에는 기능을 설명하는 요약 정보를 명시한다.
테스트에 영향을 주지 않지만 Cucumber Report 에 사용된다.
파일명은 snake case 로 하는게 관례적 이다.
user_log_in.feature
Gherkin은 검증 시 다음의 하나는 필수적으로 명시되었는지 체크 한다.
Scenario
Background
Scenario Outline
3939
40. Scenario
4040
원하는 동작을 표현하기 위해 각 기능에 몇 가지 시나리오가 포함된다.
시나리오 이름만 사용하면 혼동을 일으킬 수 있다.
명확한 설명이 필요하고 문서화 되므로 명세화 해야 한다.
각 시나리오는 특정 상황에서 시스템이 어떻게 동작해야 하는지 보여주는 하나의
구체적인 예이다.
모든 시나리오에서 정의된 동작을 함께 추가하면 기능 자체의 예상 동작이 된다.
컨텍스트로 시작해서, 계속해서 어떤 행동을 실행하고, 마지막으로 결과가 기대했던
것인지 확인한다. 각각의 시나리오는 시스템이 해야 하는 것을 묘사하는 작은
이야기를 한다.
주요 패턴
시스템을 특정 상태로 만든다
상태를 수행한다
상태를 확인한다
각 시나리오는 타당해야 하며 다른 시나리오와 독립적으로 실행되어야 한다.
상태를 전이하는 시나리오는 지양하라.
42. Scenario
4242
Take Care with Your Naming Scenarios
시나리오 네이밍 정의는 놀랍게도 매우 중요하다.
테스트가 실패하면 무엇이 실패 했는지에 대한 헤드라인 정보를 제공하는 것이 실패
시나리오의 네이밍이다. 간결하고 표현력 있는 네이밍을 사용하면 모든 사람의 시간을
절약할 수 있다.
네이밍이 올바르다면 그것이 무엇을 하는지 알아내기 위해 내부 코드를 읽을 필요가
없다.
시스템이 진화함에 따라 이해 관계자는 기존 시나리오에서 예상되는 동작을 변경해 달
라는 요청을 자주하게 된다. 잘 정의된 시나리오 네이밍은 추가적인 단계 또는 단계를
수정하더라도 여전히 의미가 있다.
43. Steps - Given
시스템의 초기 컨텍스트인 시나리오의 장면을 가정하는 단계이다.
Cucumber가 Given 단계를 실행 할 때 작성 및 구성 또는 Test DB에
data 추가와 같은 잘 정의된 상태로 시스템을 구성한다.
사용자(또는 외부 시스템)가 시스템과 상호 작용하기 전에 시스템을
컨텍스트 상태로 전환하는 것이 목적이다.
4343
44. Steps – When
이벤트 실행 또는 설명하는 단계이다.
시나리오마다 하나의 단계만 수행하는 것이 좋다.
추가할 필요가 있다고 느끼면 시나리오를 여러 개로 나눠야 한다는
신호이다.
4444
45. Steps – Then
기대 결과 또는 결과를 설명하는 단계이다.
실제 결과를 기대 결과와 비교하기 위해 assertion 을 사용한다.
4545
46. Steps – And, But
Cucumber는 And, But 키워드 자체를 활용하지 않는다.
단지 이전 단계를 보조해 주는 역할을 한다.
즉, Step의 가독성을 주기 위해 도움을 주는 옵션이다.
4646
48. Steps – *
4848
Given, When, Then, And, But 이 장황하다고 여기는 사람도 있다.
(설마~ ㅋㅋ)
이때는 *(별표)를 이용할 수 있다.
단, 편의성은 있지만 가독성은 포기해야 한다.
49. Background
반복은 주의를 산만하게 하고, 각 Scenario 가 테스트하는
것에 대한 의도를 탁하게 만든다.
Background 섹션을 사용하여 모든 Scenario 의 공통적인
step 집합을 중복없이 컨텍스트화 할 수 있다.
Background 는 각 Scenario 시작 전에 실행되므로 첫 번째
Scenario 이전에 기술한다.
Feature 당 Background 는 하나여야 한다. 다른 Scenario
에 대해 다른 Background 가 필요하다면 Feature 를
분리해야 한다는 신호이다.
4949
52. Background
5252
Background Tip!
• 실제로 알아야 할 인수 정보가 아니라면 Background 사용을 지양하라.
• Background 를 간결하게 작성하고 눈에 띄게 만들어라.
• 사람들은 이를 주의 깊게 기억하는데 도움이 되어야 한다.
• 네 줄 이상이면 한 두 단계로 표현할 수 있는 방법을 찾아봐라.
• Scenario 가 많아 기반 화면을 초과하여 스크롤 될 경우 Background 에서 무슨 일이
일어났는지에 대한 전체 개요를 인지하기 어려워진다. Feature 를 분할하는 것에
대해 생각해 봐라.
53. Scenario Outline
다른 동일 Scenario 를 여러 번 실행하는 데 사용.
Scenario 를 복사하여 붙여 넣어 서로 다른 값을 사용하는
것은 중복이다.
Examples 섹션을 포함해야 한다.
표의 헤더를 참조하는 <> 구분 매개 변수를 사용
파라미터를 표의 값으로 대체
일반적인 데이터 표는 단일 Scenario 의 단계에 첨부할
데이터 묶음이다.
내부적으로 다수의 Scenario 로 실행함
5353
56. Scenario Outline
5656
MULTIPLE TABLES OF EXAMPLES (Scenario 도 가능)
Scenario Outline 의 수많은 예제 항목을 처리할 수 있다.
다양한 유형의 예제를 그룹화하여 가독성을 높일 수 있다.
57. Step Arguments
5757
Doc Strings
큰 크기의 텍스트를 단계 정의로 전달하는 데 유용
텍스트는 step 자체 라인에 세 개의 이중 인용 부호로 감싸서 표현
Step 정의에서 이 텍스트를 패턴에 반영시킬 필요는 없다. 이 값은 마지막
인수로 자동 전달된다.
58. Step Arguments
5858
String Transformations
String 이 아닌 다른 객체로 받으려는 경우
int, long, date, calendar 등 일반적인 객체 기본 지원
@Transform 어노테이션을 사용하여 직접 변환하는 경우
59. Step Arguments
5959
Data Tables
값 목록을 step 정의로 전달하는 데 유용
Doc Strings 와 마찬가지로 step 정의에 마지막 인수로 전달
Data Table API 제공
63. 63
How Many Examples Should I Use?
• 현실적인 주요 예제를 대상으로 하는 것이 가독성과 인수 조건에 부합한다.
다양하고 많은 예제로 검증하고자 하는 바램이 있겠으나 단위/통합 테스트에서 처리
하는 것이 이상적이다.
• 버그가 없다는 것을 인수 테스트에서 증명할 수 없다는 것을 기억하라.
증거의 부재는 부재의 증거가 아닌 무엇을 의도하고 목적을 어디에 두는 것이냐가
핵심이다!
• 가독성 이라는 것을 기억하고 너무 멀리가지 말고 항상 사람들과 정기적으로 읽고
피드백을 상호 교류하여 정련해야 한다.
64. Step Arguments
6464
@(Tags)
태그를 사용하여 Feature, Scenario 에 레이블을 부착할 수 있다
관련한 도메인 컨텍스트를 분류하여 탐색 및 가독성을 증진한다
Cucumber 실행 시에도 태그 단위로 제어할 수 있다
72. Write a Scenario
7272
Feature: 벌써 금요일 인가요?
모두가 금요일이 언제인지 알고 싶어합니다.
Scenario: 일요일은 금요일이 아니다.
Given 오늘은 일요일 이다.
When 오늘이 금요일 인지 묻는다.
Then 나는 "아니요." 라고 말합니다.
src/test/resources/hellocucumber/is_it_friday_yet.featu
re
99. Top 5 Cucumber Best Practices
9999
https://blog.codeship.com/cucumber-best-practices/
1. 선언적 Feature 를 작성하라.
scenario 는 사용자 관점에서 설명 될 수 있도록 작성한다.
링크를 클릭하고 양식 필드를 채우거나 코드 또는 CSS 선택 등이 포함된
실행
또는 내부 처리 관점의 설명이 아니다.
도메인 관점의 간결 명료한 선언적 feature 를 만들어야 한다.
100. Top 5 Cucumber Best Practices
100100
2. 내레이션으로 기술하라.
내레이션은 한 문장에서 기능이 무엇인지 설명한다.
이는 사용자 관점에서 도메인 이해 및 기능 자체가 필요한 역할을 설명하는
데
이점이 있다. 즉, 왜 처음에 이 기능을 구현 하는지를 이해 하는 데 중요
도움을
준다. 또한 기능에 대한 간략한 개요를 제공하므로 시나리오를 읽지 않고
다른
사람들이 대략적인 내용을 이해할 수 있다.
101. Top 5 Cucumber Best Practices
101101
3. 결합된 동작의 단일 Step 을 피하라.
결합 된 두 가지 동작이 포함 된 단일 단계가 발생하면 “And” 를 사용하여
두 단계로 나줘야 한다.
이는 한 단계 당 하나의 작업을 수행하는 것이 명확한 이해와 함께 단계
구현을
모듈화 하여 재사용 가능성이 높아진다.
102. Top 5 Cucumber Best Practices
102102
4. Step 정의를 재사용 하라.
Cucumber 에서는 Step 을 재사용 할 수 있다.
이는 다른 Step 의 동작을 확장하거나 여러 단계로 구성된 우수한 동작을
정의 할 때 편리하다.
이렇게 하면 유지 보수성이 향상되어 특정 동작을 변경해야하는 경우
단일 Step 정의만 변경하면 된다.
103. Top 5 Cucumber Best Practices
103103
5. Background 사용을 현명하게 사용하라.
모든 Scenario 를 시작할 때 동일한 Step 과정을 사용하는 경우
Background 를 배치하라.
단, 너무 길면 Scenario 가독성에 저해가 될 수 있으므로 너무 많은
Step 을 거치지 않도록 조심한다.
104. Write Great Cucumber Tests
104104
https://saucelabs.com/blog/write-great-cucumber-tests
105. Scenario and Step Definition Best Practices - Cucumber
105105
https://www.linkedin.com/pulse/scenario-step-definition-best-practices-
cucumber-dilshan-fernando
106. 15 EXPERT TIPS FOR USING CUCUMBER
106106
https://www.engineyard.com/blog/15-expert-tips-for-using-cucumber
107. 9 tips for improving Cucumber test readability
107107
https://www.foreach.be/blog/9-tips-improving-cucumber-test-readability