web-dev-qa-db-ja.com

ジャスミンはcreateSpy()にモックオブジェクトを返します

私は応答オブジェクトをモックアップしようとしています、そしてそれはこのようなものです:

var res = {
  status: jasmine.createSpy().andReturn(this),
  send: jasmine.createSpy().andReturn(this)
}

これは、jasmineオブジェクトを返します。モックされた関数を含む元のres変数を本当に返したいのですが。それは可能ですか?私は主にこれを実装して、難しいことが判明しているres.status()。send()を含む関数を単体テストします。

19
ritmatter

ここでの答えは実際にはかなり速いです。 andReturn()を呼び出すと、ジャスミンが 'this'になります。しかし、andCallFake()を記述した場合、その関数はモックされたオブジェクトをこれと見なします。ソリューションは次のようになります。

status: jasmine.createSpy().andCallFake(function(msg) { return this });
28
ritmatter

これは私にとってはうまくいきます:

const res = {
  status: jasmine.createSpy('status').and.callFake(() => res),
  send: jasmine.createSpy('send').and.callFake(() => res),
};
9
Olivier Torres