250x250
Rainbow๐ŸŒˆCoder
My dev Note๐Ÿ“’
Rainbow๐ŸŒˆCoder
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (411)
    • ๊ณต์ง€์‚ฌํ•ญ (0)
    • Debugger (10)
      • Visual Studio Debugger (1)
      • Chrome DevTools (3)
      • Visual Studio Code Debugger (4)
      • eclipse (1)
      • intelliJ (1)
    • OOP (2)
      • OOP (2)
    • TypeScript (54)
      • ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ TypeScript (54)
    • Javascript (87)
      • Javascript (45)
      • Node.js (19)
      • React (5)
      • FE ๊ฐœ๋ฐœํ™˜๊ฒฝ์„ค์ • (3)
      • React์™€ Node ๊ฐ™์ด ๋•Œ๋ ค์žก๊ธฐ (6)
      • next.js (2)
      • pixi.js (7)
    • ๋งˆํฌ์—… (23)
      • Html & Css (23)
    • C# (80)
      • C# (12)
      • ์ด๊ฒƒ์ด C#์ด๋‹ค (68)
    • C++ (30)
      • c++ (27)
      • win api (3)
    • Unity (18)
      • Unity(๊ธฐ์ดˆ) (8)
      • Unity(C#์ค‘๊ธ‰) (5)
      • ์œ ๋‹ˆํ‹ฐ ํฌํ†ค(๋„คํŠธ์›Œํฌ) (4)
      • unity c# MyCode (1)
    • Java & Spring (29)
      • Java (11)
      • ์Šคํ”„๋ง (8)
      • Java Algorithm (9)
      • Javs Data Structures (1)
    • ์ž๋ฃŒ๊ตฌ์กฐ์™€ ์•Œ๊ณ ๋ฆฌ์ฆ˜ (15)
      • ์ž๋ฃŒ๊ตฌ์กฐ (5)
      • ์•Œ๊ณ ๋ฆฌ์ฆ˜ (10)
    • ํ˜•์ƒ๊ด€๋ฆฌ (15)
      • Git (11)
      • ์†Œ์ŠคํŠธ๋ฆฌ (3)
    • ๊ทธ๋ž˜ํ”ฝ์Šค (7)
      • WebGl (7)
    • AWS (3)
      • aws (3)
    • ๋ฆฌ๋ˆ…์Šค (5)
      • ๋ฆฌ๋ˆ…์Šค (5)
    • ์ฑ… ๋ฆฌ๋ทฐ (13)
      • ํด๋ฆฐ์ฝ”๋“œ(์ฑ…๋ฆฌ๋ทฐ) (3)
      • ์œ ์ง€๋ณด์ˆ˜๊ฐ€๋Šฅํ•œ์ฝ”๋”ฉ์˜๊ธฐ์ˆ C#ํŽธ(์ฑ…๋ฆฌ๋ทฐ) (1)
      • ๋ฆฌํŒฉํ† ๋ง(์ž๋ฐ”์Šคํฌ๋ฆฝํŠธํŒ) (9)
    • Server (2)
      • ๊ฒŒ์ž„ ์„œ๋ฒ„(๋„คํŠธ์›Œํฌ, ๋ฉ€ํ‹ฐ์“ฐ๋ ˆ๋“œ,OS) (2)
    • ์„ค๊ณ„, ์•„ํ‚คํ…์ณ (4)
    • ํŒŒ์ด์ฌ (5)
    • ๋””์ž์ธํŒจํ„ด (2)
    • mocha (2)
    • Jest (1)
    • Spine (1)
    • ์ธ๊ณต์ง€๋Šฅ (1)
      • ํ˜ผ์ž๊ณต๋ถ€ํ•˜๋Š”๋จธ์‹ ๋Ÿฌ๋‹+๋”ฅ๋Ÿฌ๋‹ (1)

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

  • ํ™ˆ
  • ํƒœ๊ทธ
  • ๋ฐฉ๋ช…๋ก

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

์ธ๊ธฐ ๊ธ€

ํƒœ๊ทธ

  • ์ปดํฌ์ง€์…˜
  • ใ…ฃใ„ท
  • MySQL
  • ์œ„์ž„

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

์ตœ๊ทผ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ

hELLO ยท Designed By ์ •์ƒ์šฐ.
Rainbow๐ŸŒˆCoder

My dev Note๐Ÿ“’

ํ…Œ์ŠคํŠธ ์ž๋™ํ™” ํ”„๋ ˆ์ž„์›Œํฌ Mocha ๊ณต์‹ ๋ฉ”๋‰ด์–ผ ๋”ฐ๋ผํ•˜๊ธฐ (1)
mocha

ํ…Œ์ŠคํŠธ ์ž๋™ํ™” ํ”„๋ ˆ์ž„์›Œํฌ Mocha ๊ณต์‹ ๋ฉ”๋‰ด์–ผ ๋”ฐ๋ผํ•˜๊ธฐ (1)

2022. 10. 31. 11:25
728x90

 

 

Mocha - the fun, simple, flexible JavaScript test framework

Mocha is a feature-rich JavaScript test framework running on Node.js and in the browser, making asynchronous testing simple and fun. Mocha tests run serially, allowing for flexible and accurate reporting, while mapping uncaught exceptions to the correct te

mochajs.org

 

ํšŒ์‚ฌ์—์„œ ํ…Œ์ŠคํŠธ ํ”„๋ ˆ์ž„์›Œํฌ ์ค‘ jest์™€ mocha ์ค‘ mocha๋ฅผ ์ฑ„ํƒํ•˜๋Š” ์ชฝ์œผ๋กœ ๊ธฐ์šธ์—ฌ์ง€๊ณ  ์žˆ๋Š” ๊ฒƒ ๊ฐ™์•„์„œ mocha ๊ณต์‹ ํ™ˆํŽ˜์ด์ง€์˜ ์˜ˆ์ œ๋ฅผ ๋”ฐ๋ผํ•ด๋ณด๋Š” ํฌ์ŠคํŒ… (์กฐ๊ธˆ ๋” ๋‚˜์—๊ฒŒ ํŽธํ•˜๊ฒŒ ๊ณผ์ •์„ ๋ฐ”๊พธ์—ˆ๋‹ค)

 

 

์—๋””ํ„ฐ๋Š” ๋น„์ฅฌ์–ผ ์ŠคํŠœ๋””์˜ค ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค.

1. ์ƒˆ๋กœ์šด ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“ ๋‹ค

2. npm init -y

2. ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ํ„ฐ๋ฏธ๋„์— ์ž…๋ ฅ!

npm install --save-dev mocha

๊ทธ๋Ÿฌ๋ฉด package.json ์ด ์ด๋ ‡๊ฒŒ ๋ณ€๊ฒฝ๋œ๋‹ค.

{
  "name": "mochatestingpj",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "mocha": "^10.1.0"
  }
}

์—ฌ๊ธฐ์„œ ๋‚˜๋Š” ์Šคํฌ๋ฆฝํŠธ ๋ถ€๋ถ„์„ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ณ€๊ฒฝํ•˜๊ณ  ๋‹ค์‹œ ํ„ฐ๋ฏธ๋„์— npm install ์ž‘์„ฑ

  "scripts": {
    "test": "mocha"
  },

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ํ…Œ์ŠคํŒ…ํ•  ๋•Œ npx mocha ๋Œ€์‹ ์— npm test๋ฅผ ์ž‘์„ฑํ•˜์—ฌ๋„ ๋˜‘๊ฐ™์ด ๋Œ์•„๊ฐ€๊ฒŒ ๋œ๋‹ค.


 

You can add a package.json file to your package to make it easy for others to manage and install. Packages published to the registry must contain a package.json file.

  • lists the packages your project depends on
  • specifies versions of a package that your project can use using semantic versioning rules
  • makes your build reproducible, and therefore easier to share with other developers

๊ธฐ๋ณธ์ ์œผ๋กœ๋Š” package.json์€ ๋ฌธ์„œ๋‹ค.

๊ฐœ๋ฐœ์ž๊ฐ€ ๋ฐฐํฌํ•œ ํŒจํ‚ค์ง€์— ๋Œ€ํ•ด, ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์ด ๊ด€๋ฆฌํ•˜๊ณ  ์„ค์น˜ํ•˜๊ธฐ ์‰ฝ๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•œ ๋ฌธ์„œ.

npm์— ํŒจํ‚ค์ง€๋ฅผ ๋ฐฐํฌํ•˜๊ณ  npm registry์— ์˜ฌ๋ฆฌ๊ธฐ ์œ„ํ•ด์„œ ๋ฐ˜๋“œ์‹œ ํ•„์š”ํ•œ ๋ฌธ์„œํŒŒ์ผ์ด๋‹ค.

  • ์ž์‹ ์˜ ํ”„๋กœ์ ํŠธ๊ฐ€ ์˜์กดํ•˜๋Š” ํŒจํ‚ค์ง€์˜ ๋ฆฌ์ŠคํŠธ
  • ์ž์‹ ์˜ ํ”„๋กœ์ ํŠธ์˜ ๋ฒ„์ „์„ ๋ช…์‹œ
  • ๋‹ค๋ฅธ ํ™˜๊ฒฝ์—์„œ๋„ ๋นŒ๋“œ๋ฅผ ์žฌ์ƒ ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋งŒ๋“ค์–ด, ๋‹ค๋ฅธ ๊ฐœ๋ฐœ์ž๊ฐ€ ์‰ฝ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค.

์ฆ‰, npm์ด๋ผ๋Š” ์˜คํ”ˆ์†Œ์Šค ํŒจํ‚ค์ง€ ์ƒํƒœ๊ณ„๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ๋ช…์„ธ์ด์ž, ํ”„๋กœ์ ํŠธ์˜ ์˜์กด์„ฑ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•œ ๋ช…์„ธ, ๋˜ ์ด ์ƒํƒœ๊ณ„๋กœ์˜ ๋ฐฐํฌ๋ฅผ ์œ„ํ•œ ๋ช…์„ธ๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

ํ”„๋กœ์ ํŠธ์˜ ๊ฐœ๋ฐœ๋งŒ์„ ์œ„ํ•œ ๋ชฉ์ ์ธ์ง€, ํŒจํ‚ค์ง€๋ฅผ ๋ฐฐํฌํ•˜๊ธฐ ์œ„ํ•œ ๋ชฉ์ ์ธ์ง€์— ๋”ฐ๋ผ ์šฉ๋„๊ฐ€ ๊ฐˆ๋ฆด ์ˆ˜ ์žˆ๊ฒ ๋‹ค๋ผ๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค.
์ผ๋ฐ˜์ ์œผ๋กœ ํŒจํ‚ค์ง€๋ฅผ ๋ถˆ๋Ÿฌ์™€์„œ ํ”„๋กœ์ ํŠธ๋ฅผ ๊ฐœ๋ฐœํ•˜๋Š”๊ฒŒ ๋ชฉ์ ์ด๋ผ๋ฉด, ์˜์กด์„ฑ ๊ด€๋ฆฌ์— ๋Œ€ํ•œ ๋ช…์„ธ๊ฐ€ ๋” ์ค‘์š”ํ•  ๊ฒƒ์ด๋‹ค.

์ถœ์ฒ˜ : https://hoya-kim.github.io/2021/09/14/package-json/


 

3. ํ”„๋กœ์ ํŠธ์— test ๋ผ๋Š” ํด๋”๋ฅผ ๋งŒ๋“ ๋‹ค.(๋ฐ˜๋“œ์‹œ test ๋กœ ์ž‘์„ฑ!)

4. ๊ทธ ์•ˆ์— js ํŒŒ์ผ์„ ๋งŒ๋“ ๋‹ค(์ด๋ฆ„ ์ž์œ )

5. js ํŒŒ์ผ์— mocha ๊ณตํ™ˆ์— ์žˆ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์˜ˆ์ œ๋ฅผ ๋ถ™์—ฌ๋„ฃ๊ณ , npx mocha ๋ฅผ ์ž…๋ ฅ!

var assert = require('assert');
describe('Array', function () {
  describe('#indexOf()', function () {
    it('should return -1 when the value is not present', function () {
      assert.equal([1, 2, 3].indexOf(4), -1);
    });
  });
});

ํ•ด์„ :

[1, 2, 3].indexOf(4)

๋ฐฐ์—ด์—์„œ 4๋ฅผ ์ฐพ๋Š”๋‹ค(์—†์œผ๋ฉด ์ธ๋ฑ์Šค๋ฅผ -1๋กœ ์ถœ๋ ฅ๋จ)

 

assert.equal([1, 2, 3].indexOf(4), -1);

assert.equal ์ฒซ๋ฒˆ์งธ ์ธ์ž์˜ ๊ฒฐ๊ด๊ฐ’์œผ๋กœ ๊ธฐ๋Œ€๋˜๋Š” ๊ฐ’์„ ๋‘๋ฒˆ์งธ ์ธ์ž์— ๋„ฃ๊ณ ,

์ฒซ๋ฒˆ์งธ ์ธ์ž ๊ฒฐ๊ด๊ฐ’๊ณผ, ๊ธฐ๋Œ€๊ฐ’์œผ๋กœ ์ž‘์„ฑํ•œ ๋‘๋ฒˆ์งธ ์ธ์ž๊ฐ€ ๊ฐ™์œผ๋ฉด pass, ์•„๋‹ˆ๋ฉด fail์ด ๋œฌ๋‹ค.

ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ

๊ฐ’์„ ์กฐ๊ธˆ ๋ฐ”๊พธ๊ฒŒ ์ ์–ด๋„ฃ์–ด๋„ ๊ฒฐ๊ณผ๋Š” ๊ฐ™๋‹ค

var assert = require('assert');
describe('Array', function () {
	describe('#indexOf()', function () {
		it('should return 2', function () {
			assert.equal([1, 2, 3].indexOf(3), 2);
		});
	});
});

์ผ๋ถ€๋กœ ํ‹€๋ฆฐ ๊ธฐ๋Œ“๊ฐ’์„ ์ž‘์„ฑํ•ด์„œ ๋„ฃ์œผ๋ฉด fail์ด ๋œฌ๋‹ค.

var assert = require('assert');
describe('Array', function () {
	describe('#indexOf()', function () {
		it('should return -1', function () {
			assert.equal([1, 2, 3].indexOf(4), -1 + 1);
		});
	});
});

 

 

 

 

์—ฌ๊ธฐ๊นŒ์ง€๊ฐ€ ๊ธฐ๋ณธ!

~ํ…Œ์ŠคํŠธ ์ž๋™ํ™” ํ”„๋ ˆ์ž„์›Œํฌ Mocha ๊ณต์‹ ๋ฉ”๋‰ด์–ผ ๋”ฐ๋ผํ•˜๊ธฐ ์‹œ๋ฆฌ์ฆˆ๋Š” ์ด์–ด์„œ ์ž‘์„ฑ๋œ๋‹ค.~

728x90

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

ํ…Œ์ŠคํŠธ ์ž๋™ํ™” ํ”„๋ ˆ์ž„์›Œํฌ Mocha ๊ณต์‹ ๋ฉ”๋‰ด์–ผ ๋”ฐ๋ผํ•˜๊ธฐ (2)  (0) 2022.10.31
    'mocha' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • ํ…Œ์ŠคํŠธ ์ž๋™ํ™” ํ”„๋ ˆ์ž„์›Œํฌ Mocha ๊ณต์‹ ๋ฉ”๋‰ด์–ผ ๋”ฐ๋ผํ•˜๊ธฐ (2)
    Rainbow๐ŸŒˆCoder
    Rainbow๐ŸŒˆCoder
    ๋ชฐ๋ผ๋„ ๊ฒฐ๊ตญ์€ ์•„๋Š” ๊ฐœ๋ฐœ์ž, ๊ทธ๋Ÿฐ ์‚ฌ๋žŒ์ด ๋˜๊ธฐ ์œ„ํ•œ ๋งค์ผ์˜ ํ•œ๊ฑธ์Œ

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