Sinon: "API 사양"μŠ€νƒ€μΌ λ¬Έμ„œ

에 λ§Œλ“  2019λ…„ 04μ›” 02일  Β·  14μ½”λ©˜νŠΈ  Β·  좜처: sinonjs/sinon

Java (λ¬Έμ„œμ˜ κ³¨λ“œ ν‘œμ€€) λ˜λŠ” jQuery μ—μ„œ λ³Ό μˆ˜μžˆλŠ” 라인과 ν•¨κ»˜ Sinon에 λŒ€ν•œ API 사양 μŠ€νƒ€μΌ λ¬Έμ„œλ₯Όλ³΄κ³  μ‹ΆμŠ΅λ‹ˆλ‹€.

λΉ„ λŒ€ν™”μ‹μœΌλ‘œ μž‘μ„±λœ AZ μ•ŒνŒŒλ²³μˆœ κΈ°λŠ₯ λͺ©λ‘ (ν˜„μž¬ λ¬Έμ„œ _is_ ν˜„μž¬ μž‘μ„± 방법)이이 λ¬Έμ„œμ— ν•„μš”ν•œ κ²ƒμž…λ‹ˆλ‹€.

Documentation Help wanted Needs investigation hacktoberfest pinned

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

μ•ˆλ…•ν•˜μ„Έμš”.

Java λ¬Έμ„œκ°€ 맀우 κ±΄μ‘°ν•˜λ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€. μ°Έκ³  μš©μœΌλ‘œλŠ” μ’‹μ§€λ§Œ 더 큰 뢀뢄을 λ°°μš°κ±°λ‚˜ grokingν•˜λŠ” λ°λŠ” 쒋지 μ•ŠμŠ΅λ‹ˆλ‹€.

λ™μ˜ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λ‚˜λŠ” 단지 λ¬Έμ„œμ™€ νŠœν† λ¦¬μ–Όμ˜ 두 가지가 λΆ„λ¦¬λ˜μ–΄μ•Όν•œλ‹€κ³  λ§ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€. javadocs의 건쑰 함은 ν”ŒλŸ¬μŠ€μž…λ‹ˆλ‹€. ν•˜λ‚˜λŠ” 거기에 κ°€μ„œμ΄ λ“œλΌμ΄μ–΄ μ»¨λ²€μ…˜μ„ 톡해 "사물"μ΄ν•˜λŠ” 일을 μ•Œμ•„λ‚Ό 수 μžˆμŠ΅λ‹ˆλ‹€. λ¬Όλ‘  κ°€μž₯ μ€‘μš”ν•œ 것은 본질적으둜 ν¬κ΄„μ μ΄λΌλŠ” κ²ƒμž…λ‹ˆλ‹€. λ‚˜λŠ” λ‚΄ λ¬Έμ„œμ— μž₯ν™©ν•œ λ¬Έμž₯ ꡬ쑰λ₯Ό μ›ν•˜μ§€ μ•ŠλŠ”λ‹€-λ‚˜λŠ” λ‚΄ νŠœν† λ¦¬μ–Όμ—μ„œ 그것을 μ›ν•œλ‹€.

μ €λŠ” JSDoc의 μ „λ¬Έκ°€λŠ” μ•„λ‹ˆμ§€λ§Œ JSDoc 주석에 ν•­λͺ©μ— λŒ€ν•œ μžμŠ΅μ„œλ‘œ μ—°κ²°ν•˜λŠ” μ‰¬μš΄ 방법이 μžˆλŠ”μ§€ κΆκΈˆν•©λ‹ˆλ‹€.

이것에 λŒ€ν•œ κ°œλ… 증λͺ…을 μ œκ³΅ν•˜λŠ” 것에 κ΄€ν•΄μ„œλŠ” @ fatso83 ν˜„μž¬ μ‹œκ°„μ΄ 쑰금 λΆ€μ‘±ν•©λ‹ˆλ‹€ (λˆ„κ°€ 그렇지 μ•ŠμŠ΅λ‹ˆκΉŒ?).ν•˜μ§€λ§Œ μ˜¬ν•΄ ν›„λ°˜μ— 더 λ‚˜μ€ μœ„μΉ˜μ—μžˆμ„ 수 μžˆμŠ΅λ‹ˆλ‹€. . Sinon을 μ² μ €νžˆ λ°°μš°λŠ” 쒋은 방법이 될 κ²ƒμž…λ‹ˆλ‹€.

λͺ¨λ“  14 λŒ“κΈ€

그건 κ·Έλ ‡κ³ , λ‚˜λŠ” κ°€μΉ˜μžˆλŠ” ν˜„μž¬ λ¬Έμ„œμ— κ·€λ₯Ό κΈ°μšΈμ΄μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λ‚˜λŠ” 단지 좔가적이고 포괄적 인 것을 μ œμ•ˆν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€.

Javaμ—λŠ” μˆ˜λ™ μž‘μ—…μ—†μ΄ JavaDocsλ₯Ό μƒμ„±ν•˜λŠ” μžλ™ 도ꡬ가 μžˆμŠ΅λ‹ˆλ‹€. JS λΌμ΄λΈŒλŸ¬λ¦¬μ—μ„œ 이와 같은 것을 μ–»μœΌλ €λ©΄ λ§Žμ€ μˆ˜μž‘μ—…μ΄ ν•„μš”ν•©λ‹ˆλ‹€. λ‚˜λŠ” 그와 같은 것을보고 μ‹Άμ§€λ§Œ κ½€ 빨리 ꡬ식이 될 것이 두렡닀.

μš°λ¦¬λŠ” μ½”λ“œ 주석과 도ꡬ에 λŒ€ν•΄ μ•½κ°„μ˜ μžμ „κ±°λ₯Ό νƒˆ 수 μžˆμŠ΅λ‹ˆλ‹€. μ‹€ν–‰ κ°€λŠ₯ν•œ μ˜΅μ…˜μ΄μžˆμ„ 수 μžˆμŠ΅λ‹ˆλ‹€.

λ‚˜λŠ” 그것이 λ‹€λ₯Έ μŠ€λ ˆλ“œμ—μ„œ μ œκΈ°λ˜μ—ˆλ‹€λŠ” 것을 μ•Œκ³  μžˆμ§€λ§Œ, 맀우 κ°„λ‹¨ν•˜κ²Œ 전체 λΌμ΄λΈŒλŸ¬λ¦¬κ°€ jsDoc으둜 λ¬Έμ„œν™”λ˜μ–΄μ•Όν•œλ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€. 이것은 JavaScript에 λŒ€ν•œ μ‚¬μ‹€μƒμ˜ ν‘œμ€€μž…λ‹ˆλ‹€ (λ˜λŠ” 적어도 ν•˜λ‚˜μ— λŒ€ν•œ κ°€μž₯ κ°•λ ₯ν•œ μ£Όμž₯). μš°λ¦¬λŠ” μ΅œμ†Œν•œμ˜ λ¬Έμ„œ λ²”μœ„λ‘œ μ‹œμž‘ν•˜μ—¬ APIλ₯Ό κ²Œμ‹œν•˜κ³  벽에 큰 "진행 쀑"ν‘œμ‹œλ₯Ό 놓고 κ±°κΈ°μ—μ„œ λΉŒλ“œ ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

@mantoni JSDocs λ₯Ό μžλ™ μƒμ„±ν•˜κΈ°μœ„ν•œ λ§Žμ€ 도ꡬ가 μžˆμŠ΅λ‹ˆλ‹€. λ‚˜λŠ” μ΄κ²ƒμ˜ v1이 문제라고 보지 μ•ŠλŠ”λ‹€. λͺ¨λ“  κ³³μ—μ„œ @typedef λ₯Ό λ§Œλ“€ ν•„μš”λŠ” μ—†μŠ΅λ‹ˆλ‹€. κ·Έλƒ₯ 가지고

/**
  <strong i="8">@param</strong> {String} [foo] optional string
  <strong i="9">@example</strong> Create foo instance
       var foo = dooFoo('somestring') 
*/ 

κ½€ 도움이 될 κ²ƒμž…λ‹ˆλ‹€.

μ•ˆλ…•ν•˜μ„Έμš” @ 76784 , ν›Œλ₯­ν•œ μž…λ ₯μž…λ‹ˆλ‹€! 😊

κ·ΈλŸ¬λ‚˜ λͺ‡ 가지 κ³ λ €ν•΄μ•Ό ν•  사항이 μžˆμŠ΅λ‹ˆλ‹€.

λ‚˜λŠ” JSDoc을 μ•„μ£Ό μ’‹μ•„ν•©λ‹ˆλ‹€. 그것은 λ˜ν•œ μš°λ¦¬κ°€ Chai.js 그리고 그것은 λ„€μž„ 슀페이슀둜 뢄리 ν•  수 β€‹β€‹μžˆκ³  μ½”λ“œκ°€ μ„œλ‘œ λ°”λ‘œ μ˜†μ— 있기 λ•Œλ¬Έμ— 항상 λ¬Έμ„œμ™€ 동기화λ₯Ό μœ μ§€ν•  수 있기 λ•Œλ¬Έμ— μ§€κΈˆκΉŒμ§€ κ½€ 잘 μž‘λ™ν–ˆμŠ΅λ‹ˆλ‹€.

κ·ΈλŸ¬λ‚˜ Java의 λ¬Έμ„œκ°€ "κ³¨λ“œ ν‘œμ€€"μ΄λΌλŠ” 데 λ™μ˜ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. Java λ¬Έμ„œκ°€ 맀우 κ±΄μ‘°ν•˜λ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€. μ°Έκ³  μš©μœΌλ‘œλŠ” μ’‹μ§€λ§Œ 더 큰 뢀뢄을 λ°°μš°κ±°λ‚˜ grokingν•˜λŠ” λ°λŠ” 쒋지 μ•ŠμŠ΅λ‹ˆλ‹€. Sinon의 λ¬Έμ„œκ°€ μΉœμˆ™ν•œ 일반 ν…μŠ€νŠΈ κ³ μ „ μŠ€νƒ€μΌλ‘œ μž‘μ„±λ˜μ—ˆλ‹€λŠ” 사싀이 λ§ˆμŒμ— λ“­λ‹ˆλ‹€. 채택을 μœ λ„ν•˜λŠ” IMO. λ˜ν•œ API μ°Έμ‘°λ‘œμ„œ 그듀은 κ½€ 쒋은 IMOμž…λ‹ˆλ‹€.

λ¬Όλ‘  JSDocsλ₯Ό μ‚¬μš©ν•˜λŠ” 것이 쒋을 것이라고 μƒκ°ν•˜μ§€λ§Œ 맀우 큰 λ…Έλ ₯이 ν•„μš”ν•˜λ‹€λŠ” 사싀을 μ•Œμ•„ μ°¨λ¦¬λŠ” 것이 μ€‘μš”ν•©λ‹ˆλ‹€.

@ 76784 κ°€ λΆ„κΈ°λ₯Ό μ‹œμž‘ν•˜κ³  λͺ‡ 가지 κ°œλ…μ„ κ΅¬μ²΄ν™”ν•˜λ©΄ 아이디어에 끌린 일뢀 μ‚¬λžŒλ“€μ΄ μ‹ μ†ν•˜κ²Œ λΆ™μž‘κ³  도움을 쀄 수 μžˆλ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€. API ν‘œλ©΄μ€ 그닀지 크지 μ•ŠμŠ΅λ‹ˆλ‹€.

μ•ˆλ…•ν•˜μ„Έμš”.

Java λ¬Έμ„œκ°€ 맀우 κ±΄μ‘°ν•˜λ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€. μ°Έκ³  μš©μœΌλ‘œλŠ” μ’‹μ§€λ§Œ 더 큰 뢀뢄을 λ°°μš°κ±°λ‚˜ grokingν•˜λŠ” λ°λŠ” 쒋지 μ•ŠμŠ΅λ‹ˆλ‹€.

λ™μ˜ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λ‚˜λŠ” 단지 λ¬Έμ„œμ™€ νŠœν† λ¦¬μ–Όμ˜ 두 가지가 λΆ„λ¦¬λ˜μ–΄μ•Όν•œλ‹€κ³  λ§ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€. javadocs의 건쑰 함은 ν”ŒλŸ¬μŠ€μž…λ‹ˆλ‹€. ν•˜λ‚˜λŠ” 거기에 κ°€μ„œμ΄ λ“œλΌμ΄μ–΄ μ»¨λ²€μ…˜μ„ 톡해 "사물"μ΄ν•˜λŠ” 일을 μ•Œμ•„λ‚Ό 수 μžˆμŠ΅λ‹ˆλ‹€. λ¬Όλ‘  κ°€μž₯ μ€‘μš”ν•œ 것은 본질적으둜 ν¬κ΄„μ μ΄λΌλŠ” κ²ƒμž…λ‹ˆλ‹€. λ‚˜λŠ” λ‚΄ λ¬Έμ„œμ— μž₯ν™©ν•œ λ¬Έμž₯ ꡬ쑰λ₯Ό μ›ν•˜μ§€ μ•ŠλŠ”λ‹€-λ‚˜λŠ” λ‚΄ νŠœν† λ¦¬μ–Όμ—μ„œ 그것을 μ›ν•œλ‹€.

μ €λŠ” JSDoc의 μ „λ¬Έκ°€λŠ” μ•„λ‹ˆμ§€λ§Œ JSDoc 주석에 ν•­λͺ©μ— λŒ€ν•œ μžμŠ΅μ„œλ‘œ μ—°κ²°ν•˜λŠ” μ‰¬μš΄ 방법이 μžˆλŠ”μ§€ κΆκΈˆν•©λ‹ˆλ‹€.

이것에 λŒ€ν•œ κ°œλ… 증λͺ…을 μ œκ³΅ν•˜λŠ” 것에 κ΄€ν•΄μ„œλŠ” @ fatso83 ν˜„μž¬ μ‹œκ°„μ΄ 쑰금 λΆ€μ‘±ν•©λ‹ˆλ‹€ (λˆ„κ°€ 그렇지 μ•ŠμŠ΅λ‹ˆκΉŒ?).ν•˜μ§€λ§Œ μ˜¬ν•΄ ν›„λ°˜μ— 더 λ‚˜μ€ μœ„μΉ˜μ—μžˆμ„ 수 μžˆμŠ΅λ‹ˆλ‹€. . Sinon을 μ² μ €νžˆ λ°°μš°λŠ” 쒋은 방법이 될 κ²ƒμž…λ‹ˆλ‹€.

이 λ¬Έμ œλŠ” 졜근 ν™œλ™μ΄ μ—†μ—ˆκΈ° λ•Œλ¬Έμ— μžλ™μœΌλ‘œ 였래된 κ²ƒμœΌλ‘œ ν‘œμ‹œλ˜μ—ˆμŠ΅λ‹ˆλ‹€. 더 이상 ν™œλ™μ΄ λ°œμƒν•˜μ§€ μ•ŠμœΌλ©΄ νμ‡„λ©λ‹ˆλ‹€. κ·€ν•˜μ˜ 기여에 κ°μ‚¬λ“œλ¦½λ‹ˆλ‹€.

이 문제λ₯Ό κ³ μ • ν–ˆμœΌλ―€λ‘œ Stale 봇에 μ˜ν•΄ λ‹«νžˆμ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

이 길둜 κ°€κΈ°λ‘œ κ²°μ •ν–ˆλ‹€λ©΄ https://github.com/gajus/eslint-plugin-jsdoc 와 같은 것을 μ‚¬μš©ν•΄μ•Όν•œλ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€ ... κ·œμΉ™μ€ μ•„λ§ˆλ„ eslint-config-sinon λ“€μ–΄κ°€μ•Όν•©λ‹ˆλ‹€.

이것에 λ›°μ–΄ λ“€κ³  λΉ μ Έ λ‚˜κ°€μ„œ λ―Έμ•ˆν•©λ‹ˆλ‹€-그것은 μ‹€μ œλ‘œ 일뢀 μž‘μ—… μš°μ„  μˆœμœ„μ— μ˜ν•΄ μ’Œμš°λ©λ‹ˆλ‹€. 그리고 이것이 μ˜¬λ°”λ₯Έ μŠ€λ ˆλ“œμΈμ§€ λͺ¨λ₯΄κ² μ§€λ§Œ κΈ°μ‘΄ λ¬Έμ„œμ— λŒ€ν•œ 더 λ§Žμ€ ν”Όλ“œλ°±μ„ μ œκ³΅ν•˜κΈ° μœ„ν•΄ ...

μŠ€νŒŒμ΄μ™€ 같은 것을 보면 : https://sinonjs.org/releases/v7.4.1/spies/

λ‚˜λŠ” 첫 번째 청크에 ν‘œμ‹œλœ 것과 λ‹€λ₯Έ ꡬ문을 가진 Mocha둜 μž‘μ—…ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.

"test should call subscribers on publish": function () {
    var callback = sinon.spy();
    PubSub.subscribe("message", callback);

    PubSub.publishSync("message");

    assertTrue(callback.called);
}

그것이 무엇이든 (Jasmine?) λŒ€μ‹ μ— Mochaλ₯Ό μ‚¬μš©ν•˜κ³  μžˆλ‹€λŠ” 사싀은 큰 일이 μ•„λ‹™λ‹ˆλ‹€ . 그듀은 λΆ„λͺ…νžˆ μœ μ‚¬ν•©λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ 메이크업을 무엇을 μ΄ν•΄ν•˜κΈ° μ–΄λ €μš΄ μ˜ˆλŠ” ν…ŒμŠ€νŠΈμ€‘μΈ κΈ°λŠ₯을 ν‘œμ‹œν•˜μ§€ μ•ŠλŠ” 것을.

예λ₯Ό λ“€μ–΄ 보렀면 κ·Έλ ‡κ²Œν•΄μ•Όν•œλ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€. ν…ŒμŠ€νŠΈ λŒ€μƒμ˜ μ΅œμ†Œ μž‘λ™ κΈ°λŠ₯을 λ³΄μ—¬μ€λ‹ˆλ‹€. myLib 와 λ™μΌν•œ 문제 : https://sinonjs.org/releases/v7.4.1/fake-xhr-and-server/

λ‚˜λŠ” 그것을 μ–»λŠ”λ‹€- myLib λŠ” λ‚΄κ°€ μ“Έ 것이닀. κ·ΈλŸ¬λ‚˜ 당신은 λ§Žμ€ μ΄ˆλ³΄μžλ“€μ—κ²Œ 그듀이 무엇에 λŒ€ν•΄ ν…ŒμŠ€νŠΈν•˜κ³  μžˆλŠ”μ§€ 보지 μ•Šκ³ μ΄ 것듀을 λ°°μ›Œμ•Όν•œλ‹€κ³  μš”κ΅¬ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.

μ‹€μ œλ‘œ κ·Έ ν…ŒμŠ€νŠΈλŠ” Mocha의 ꡬ문을 μ‚¬μš©ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€. 당신은 단지 더 ν‘œμ€€μ μΈ BDD μŠ€νƒ€μΌμ„ μ‚¬μš©ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. μ–΄μ¨Œλ“  λˆ„κ΅°κ°€κ°€ λͺ¨λ“  예제λ₯Ό μ‚¬μš©μ€‘μΈ κ°€μž₯ 일반적인 μŠ€νƒ€μΌλ‘œ μ—…λ°μ΄νŠΈν•˜λŠ” 것이 합리적 일 κ²ƒμž…λ‹ˆλ‹€. :-)

λ‹€λ₯Έ μš”μ μ— κ΄€ν•΄μ„œλŠ”, 이것듀은 맀우 νƒ€λ‹Ήν•˜λ©° μš°λ¦¬κ°€ λ…Όμ˜ν•œ κ²ƒμž…λ‹ˆλ‹€. μ‹€μ œλ‘œ μš°λ¦¬λŠ” μ‹€ν–‰ κ°€λŠ₯ν•˜κ³  ν…ŒμŠ€νŠΈλ˜κ³  λ‚΄μž₯ 된 예제λ₯Ό 가지고 μœ νš¨μ„±μ„ 보μž₯ν•˜λŠ” 것에 λŒ€ν•΄ λ…Όμ˜ν–ˆμŠ΅λ‹ˆλ‹€. μ•”μ‹œ 적으둜 μ΄λŸ¬ν•œ 문제λ₯Ό ν•΄κ²°ν•  κ²ƒμž…λ‹ˆλ‹€. ν•˜μ§€λ§Œ 예, λˆ„κ΅°κ°€κ°€ μ•‰μ•„μ„œν•΄μ•Όν•©λ‹ˆλ‹€ ...

μ‹€μ œλ‘œ κ·Έ ν…ŒμŠ€νŠΈλŠ” Mocha의 ꡬ문을 μ‚¬μš©ν•©λ‹ˆλ‹€.

뭐?? 이제 λ‚˜λŠ” Mocha λ¬Έμ„œμ— λŒ€ν•΄ 외쳐야 ν•  κ²ƒμž…λ‹ˆλ‹€. :-)

https://github.com/sinonjs/samsam/pull/82 μ—μ„œμ΄ λ…Έλ ₯을 μ‹œμž‘ν•˜λ €κ³ ν–ˆμŠ΅λ‹ˆλ‹€

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰