그건 κ·Έλ κ³ , λλ κ°μΉμλ νμ¬ λ¬Έμμ κ·λ₯Ό κΈ°μΈμ΄μ§ μμ΅λλ€. λλ λ¨μ§ μΆκ°μ μ΄κ³ ν¬κ΄μ μΈ κ²μ μ μνλ κ²μ λλ€.
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 μμμ΄ λ Έλ ₯μ μμνλ €κ³ νμ΅λλ€
κ°μ₯ μ μ©ν λκΈ
μλ νμΈμ.
λμνμ§ μμ΅λλ€. λλ λ¨μ§ λ¬Έμμ νν 리μΌμ λ κ°μ§κ° λΆλ¦¬λμ΄μΌνλ€κ³ λ§νλ κ²μ λλ€. javadocsμ 건쑰 ν¨μ νλ¬μ€μ λλ€. νλλ κ±°κΈ°μ κ°μμ΄ λλΌμ΄μ΄ 컨벀μ μ ν΅ν΄ "μ¬λ¬Ό"μ΄νλ μΌμ μμλΌ μ μμ΅λλ€. λ¬Όλ‘ κ°μ₯ μ€μν κ²μ λ³Έμ§μ μΌλ‘ ν¬κ΄μ μ΄λΌλ κ²μ λλ€. λλ λ΄ λ¬Έμμ μ₯ν©ν λ¬Έμ₯ ꡬ쑰λ₯Ό μνμ§ μλλ€-λλ λ΄ νν 리μΌμμ κ·Έκ²μ μνλ€.
μ λ JSDocμ μ λ¬Έκ°λ μλμ§λ§ JSDoc μ£Όμμ νλͺ©μ λν μμ΅μλ‘ μ°κ²°νλ μ¬μ΄ λ°©λ²μ΄ μλμ§ κΆκΈν©λλ€.
μ΄κ²μ λν κ°λ μ¦λͺ μ μ 곡νλ κ²μ κ΄ν΄μλ @ fatso83 νμ¬ μκ°μ΄ μ‘°κΈ λΆμ‘±ν©λλ€ (λκ° κ·Έλ μ§ μμ΅λκΉ?).νμ§λ§ μ¬ν΄ νλ°μ λ λμ μμΉμμμ μ μμ΅λλ€. . Sinonμ μ² μ ν λ°°μ°λ μ’μ λ°©λ²μ΄ λ κ²μ λλ€.