μ΄κ²μ λ§€μ° κ°λ¨ν ꡬ문 μ€νμ λλ€.
var stub = sinon.stub();
stub.resolves("hello");
//is the same as
stub.returns(Promise.resolve("hello"));
stub.rejects(new Error("oh noes!"));
//is the same as
stub.returns(Promise.reject(new Error("oh noes!"));
κ·Έκ²μ μ’μ μ€νμ΄ λ κ²μ λλ€. @mariusGundersenμ μ μ
- μ°λ¦¬ νμ μ΄λ° μ’
λ₯μ μ°λ¦¬λ₯Ό λκ³ μλ€ NPMμ μμ λμκ΄μ΄ https://github.com/substantial/sinon-stub-promise : -μ΄ κ°μ μ€ν
ꡬ문 μκ΅¬κ° νμ¬ κ΅¬νμμ΄ κΈΈ μμ§λ§ sinon.stub().returnsPromise()
. μκ°? μμ μμμ μ΄κ²μ λκΈ° νκ°λ₯Ό κ°μ νλ κ²μ²λΌ 보μ
λλ€.
@mariusGundersen μ μ μμ μ λ§ μ’μν©λλ€. λ΄κ° μλ ν λͺ¨λ promise λΌμ΄λΈλ¬λ¦¬λ νμ λΉλκΈ° μ μ λλ€. κ·Έλ λ€λ©΄ μ€ν μ½μμ΄μ΄ λμμ λ°μν΄μΌνλ€κ³ μκ°ν©λλ€.
λλ κ·Έκ²μ΄ μ‘΄μ¬νλ€λ©΄ μ μΈκ³μ μΌλ‘ μ¬μ© κ°λ₯ν Promise.resolve
νκ³ κ·Έλ μ§ μμΌλ©΄ μλνμ§ μμ κ²μ΄λΌκ³ μκ°νμ΅λλ€. κ·Έλ¬λ then
λ©μλλ₯Ό μ¬μ©νμ¬ κ°μ²΄λ₯Ό λ°ννλλ‘νλ κ²μ΄ ν¨μ¬ λ λμ μ루μ
μ
λλ€.
var stub = sinon.stub();
stub.resolves("hello");
//is the same as
stub.returns({then: x => setTimeout(() => x("hello"), 0)});
stub.rejects(new Error("oh noes!"));
//is the same as
stub.returns({then: x => undefined, catch: x => setTimeout(() => x(new Error("oh noes!")), 0)});
(μ νλ‘ μμ±, μ€λ₯κ°μμ μ μμ)
μ°λ¦¬ νμ μ μ¬ν κΈ°λ₯μ μ 곡νκΈ° μν΄ μ½κ°μ libλ₯Ό μμ±νμ΅λλ€. μλ§λ μ΄κ²μ΄ λμμ΄ λ κ²μ λλ€. Promiseλ₯Ό μν΄ bluebird λΌμ΄λΈλ¬λ¦¬λ₯Ό μ¬μ©ν©λλ€. https://www.npmjs.com/package/sinon-bluebird
λ€μ΄ν°λΈ Promise μ§μμμν +1
λν μ€ν°λΈμ ν΄μ / κ±°λΆ μλ―Έλ₯Ό μΆκ°νκΈ° μν΄ native-promise-only λ₯Ό μ¬μ©νμ¬ νλ‘μ νΈμ κΈ°μ‘΄ sinon λͺ¨λμ ν¨μΉ νλ sinon-as-promised λΌλ νλ‘μ νΈκ° μμ΅λλ€.
μ΄κ²μ΄ λλ λ€λ₯Έ λͺ¨λ μ€ νλμ λ³κ²½ μ¬νμ΄ sinon μ체μ μΆκ° λ μ μλ€λ©΄ μμ΄μ€κ° λ κ²μ λλ€.
μ€ν
μ΄ promiseλ₯Ό λ°ννλ sinon.stub().returnsArg(1)
μν ν μ μμ΅λκΉ? λλ μ½μμ κ²°μλ‘ λ
Όμμ λλλ¦¬λ € κ³ λ
Έλ ₯νκ³ μμ΅λλ€. μλνμ§ μλ κ² κ°μ΅λλ€.
@jnystrom μ¬μ©λ² μ§λ¬Έμ λ©μΌ λ§λ¦¬μ€νΈμ μνμ§λ§ sinonμ΄ νμ¬ κ΅¬λ¬Έ μ€νμΌλ‘ μ§μνλ κ²μ μλλλ€. ꡬ문μ μ μ ν μ μμ΅λκΉ? μ΄μ κ°μ κ²μ λΉμ μ΄ μνλ κ²μν΄μΌνλ©° λΉμ μ κ·Έκ²μ μν΄ sinonμ΄ νμνμ§ μμ΅λλ€.
stub = (arg) => Promise.resolve(arg);
μ¬κΈ°μμλ λμΌ : # 738
μλ
νμΈμ μ¬λ¬λΆ, λ¨Όμ Sinonμμ νλ₯ν μμ
μ ν΄μ£Όμ
μ κ°μ¬ν©λλ€.
μ΄ κΈ°λ₯μ ꡬννκ³ μΆλ€λ©΄ μ λ μλν΄λ³΄κ³ μΆμ΅λλ€. μλ € μ£Όμλ©΄ PR μμ
μ μμνκ² μ΅λλ€.
@lucasfcosta , κ°μ¬ν©λλ€. μ λ @mroderickμ΄ sinon-as-promised
λ₯Ό Sinonμ ν΅ν©νλ κ²μ λν΄ μ€λ μ μ μ΄μΌκΈ°νλ€κ³ μκ°ν©λλ€. κ·Έλ μ§ μμ΅λκΉ? κ·Έκ²μ΄ κ°μ₯ μ¬μ΄ ν΄κ²°μ±
μ΄ λ κ²μ΄κ³ , μ λ μ΄μκ° μμ΅λλ€.
@lucasfcosta μ λ sinon-as-promised
λ₯Ό Sinonμ master
μ§μ μ ν΅ν©νλ PRμλ³΄κ³ μΆμ΅λλ€.
κ°μ₯ μ μ©ν λκΈ
μ€ν μ΄ promiseλ₯Ό λ°ννλ
sinon.stub().returnsArg(1)
μν ν μ μμ΅λκΉ? λλ μ½μμ κ²°μλ‘ λ Όμμ λλλ¦¬λ € κ³ λ Έλ ₯νκ³ μμ΅λλ€. μλνμ§ μλ κ² κ°μ΅λλ€.