Vue BDD

Vue BDD - Cypress Mock Api

2020. 10. 13. 17:13
๋ชฉ์ฐจ
  1. ๐Ÿ“Œ ๋ชฉ์ฐจ
  2. ๐Ÿ“Œ Introduction
  3. ๐Ÿ“Œ Cypress api mock ํ•˜๊ธฐ
  4. ๐Ÿ“Œ Conclusion
  5. ๐Ÿ“Œ Reference
๋ฐ˜์‘ํ˜•

๐Ÿ“Œ ๋ชฉ์ฐจ

  • Introduction
  • Cypress api mock ํ•˜๊ธฐ
  • Conclusion
  • Reference

๐Ÿ“Œ Introduction

์•ˆ๋…•ํ•˜์„ธ์š”. BDD๋งˆ์ง€๋ง‰ ์‹œ๊ฐ„์œผ๋กœ ์ด์ œ Cypress์—์„œ api call๋ฅผ mock ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น ์ฝ”๋“œ๋Š” ์—ฌ๊ธฐ์—์„œ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น ์˜ˆ์ œ๋Š” jsonplaceholder์—์„œ todo๋ฅผ ํ•˜๋‚˜ ๋ฐ˜ํ™˜ํ•˜๋Š” ์˜ˆ์ œ ์ž…๋‹ˆ๋‹ค.

๐Ÿ“Œ Cypress api mock ํ•˜๊ธฐ

API๋ฅผ mock ํ•˜๊ธฐ์ „์— ๋จผ์ € ํ–‰๋™์„ ์ •์˜ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

  • Todo์˜ ์ œ๋ชฉ์€ 'hello'๋ผ๊ณ  ์“ฐ์—ฌ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
Feature: Todo
  Background: 
    Given I am on the main page

  Scenario: Todo display
    Then I can see Todo with text:
    |title|hello|

์ด๋ ‡๊ฒŒ ์“ด Gherkin์œผ๋กœ cypress๋Š” ์ด๋ ‡๊ฒŒ ์ฝ”๋”ฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


const { visit, the } = cy;

Given("I am on the main page", () => {
  cy.server();
  cy.route("https://jsonplaceholder.typicode.com/posts/1", {
    title: "hello",
  });
  visit("/");
});

Then("I can see Todo with text:", (rawData) => {
  const stats = rawData.rowsHash();
  const title = stats["title"];
  cy.log(stats);
  the("todo").contains(title);
});

Given("I am on the main page", ...)๋ถ€๋ถ„์„ ๋ณด๋ฉด cypress server๋ฅผ ๋จผ์ € ๋„์›Œ์ค๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  route๋ฅผ ํ†ตํ•ด ๋ฐ›๋Š” ๊ฒƒ์„ ์ƒ์„ธํ•˜๊ฒŒ ์ ์–ด์ค๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ์ ์–ด์ฃผ๋ฉด

import * as axios from "axios";

export const fetchTodos = () => {
  return axios.get("https://jsonplaceholder.typicode.com/posts/1");
};

fetchTodos์˜ response๋Š” { title: "hello" }๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

๐Ÿ“Œ Conclusion

Cypress์—์„œ api๋ฅผ mock ํ•˜๋Š” ๋ถ€๋ถ„์€ ๊ทธ๋ ‡๊ฒŒ ์–ด๋ ต์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‹ค๋งŒ ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ•˜์ง€๋Š” ๋งค์šฐ ์–ด๋ ต์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  api๋ฅผ mockํ•ด์ฃผ๋Š” ๊ฒƒ์€ integration test์˜ ๋ช…๋ชฉ์— ๋งŽ์ด ๋ฒ—์–ด๋‚ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ์• ์ดˆ์— Gherkin์„ ์ž˜ ์ ์–ด์ค„ ํ•„์š”๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ƒ์„ธํ•œ ๋ถ€๋ถ„๋“ค๋งˆ๋‹ค testing์„ ์ง„ํ–‰ํ•˜๋ฉด ์ข‹๊ฒ ์ง€๋งŒ ๊ทธ๋Ÿฐ ๋ถ€๋ถ„์€ ์ด๋ฏธ tdd์—์„œ unit test์—์„œ ๋งŽ์ด ๊ฑธ๋Ÿฌ์กŒ์„๊ฑฐ๋ผ ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ตœ๋Œ€ํ•œ ๋ฌถ์–ด์„œ ์ „์ฒด์ ์ธ ํ๋ฆ„์œผ๋กœ์จ์˜ integration์„ ์ง„ํ–‰ํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ ๋‹ค์Œ ํฌ์ŠคํŒ…์—์„œ ๋งŒ๋‚˜์š”~~ ๐Ÿ˜Ž

๐Ÿ“Œ Reference

  • cypress document
๋ฐ˜์‘ํ˜•

'Vue BDD' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

Vue BDD - Cypress ์ ์šฉํ•˜๊ธฐ  (0) 2020.10.13
Vue BDD - Gherkin  (0) 2020.10.06
Vue BDD - Setting  (0) 2020.10.06
Vue BDD - Intro  (0) 2020.10.05
  1. ๐Ÿ“Œ ๋ชฉ์ฐจ
  2. ๐Ÿ“Œ Introduction
  3. ๐Ÿ“Œ Cypress api mock ํ•˜๊ธฐ
  4. ๐Ÿ“Œ Conclusion
  5. ๐Ÿ“Œ Reference
'Vue BDD' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • Vue BDD - Cypress ์ ์šฉํ•˜๊ธฐ
  • Vue BDD - Gherkin
  • Vue BDD - Setting
  • Vue BDD - Intro
eddie0329
eddie0329
Front-end Developer
๋ฐ˜์‘ํ˜•
eddie0329
Eddie Sunny's Blog
eddie0329
์ „์ฒด
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (100)
    • Summary of Book (0)
    • Vue Study (11)
    • Vue TDD (9)
    • Vue BDD (5)
    • Design Pattern (9)
    • Javascript Study (3)
    • React Study (15)
    • React TDD (1)
    • Vue Storybook (2)
    • Refactoring (0)
    • Graphql_Apollo (3)
    • Svelte (8)
    • Open Source (1)
    • D3 (4)
    • Typescript (1)
    • CSS (2)
    • Android (0)
    • Java (0)
    • Kotlin (0)
    • ์žก๋‹ด (0)
    • Swift (19)
    • Rust (2)
    • ํšŒ์‚ฌ์ด์•ผ๊ธฐ (2)
    • ReactNative Study (2)
    • Vitest (0)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • Home

๊ณต์ง€์‚ฌํ•ญ

์ธ๊ธฐ ๊ธ€

ํƒœ๊ทธ

  • client only
  • React Native
  • TypeScript
  • slot ํŒจํ„ด
  • Vue test
  • TDD
  • swift5
  • Design Pattern
  • javascript pattern
  • CSS
  • swift
  • storybook6
  • react useRef
  • vue cypress
  • react
  • Nextjs
  • Kotlin
  • Cypress
  • apollo
  • react-component-slot
  • vue bdd
  • Javascript
  • vue3
  • BDD
  • vue tdd
  • vue storybook
  • Vue
  • jest
  • svelte
  • D3

์ตœ๊ทผ ๋Œ“๊ธ€

์ตœ๊ทผ ๊ธ€

hELLO ยท Designed By ์ •์ƒ์šฐ.
eddie0329
Vue BDD - Cypress Mock Api
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”

๋‹จ์ถ•ํ‚ค

๋‚ด ๋ธ”๋กœ๊ทธ

๋‚ด ๋ธ”๋กœ๊ทธ - ๊ด€๋ฆฌ์ž ํ™ˆ ์ „ํ™˜
Q
Q
์ƒˆ ๊ธ€ ์“ฐ๊ธฐ
W
W

๋ธ”๋กœ๊ทธ ๊ฒŒ์‹œ๊ธ€

๊ธ€ ์ˆ˜์ • (๊ถŒํ•œ ์žˆ๋Š” ๊ฒฝ์šฐ)
E
E
๋Œ“๊ธ€ ์˜์—ญ์œผ๋กœ ์ด๋™
C
C

๋ชจ๋“  ์˜์—ญ

์ด ํŽ˜์ด์ง€์˜ URL ๋ณต์‚ฌ
S
S
๋งจ ์œ„๋กœ ์ด๋™
T
T
ํ‹ฐ์Šคํ† ๋ฆฌ ํ™ˆ ์ด๋™
H
H
๋‹จ์ถ•ํ‚ค ์•ˆ๋‚ด
Shift + /
โ‡ง + /

* ๋‹จ์ถ•ํ‚ค๋Š” ํ•œ๊ธ€/์˜๋ฌธ ๋Œ€์†Œ๋ฌธ์ž๋กœ ์ด์šฉ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ํ‹ฐ์Šคํ† ๋ฆฌ ๊ธฐ๋ณธ ๋„๋ฉ”์ธ์—์„œ๋งŒ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.