DialogController を呼び出すメソッドの単体テストを行うにはどうすればよいですか? this.controller.ok()
呼び出されたことをテストしたい。
ReprocessLotDialog.js
@inject(DialogController)
export class ReprocessLotDialog {
constructor(dialogController) {
this.controller = dialogController;
}
commitReprocessingLot() {
this.controller.ok({
reprocessLot: this.model
});
}
commitIncompleteBags(){
... do stuff ....
this.commitReprocessingLot();
}
}
myDialog.spec.js
私はこれを試しましたが、動作させることができません
describe("The ReprocessLotDialog module", ()=> {
let sut;
beforeEach(()=> {
var container = new Container().makeGlobal();
container.registerInstance(DialogController,controller => new DialogController());
sut = container.get(ReprocessLotDialog);
});
it("commitReprocessingLot() should call controller.ok", (done)=> {
spyOn(sut, "controller.ok");
sut.commitIncompleteBags();
expect(sut.controller.ok).toHaveBeenCalled();
done();
});
});
テストは失敗しますTypeError: 'undefined' is not a function (evaluating 'this.controller.ok({ reprocessLot: this.model })')
私が理解している限り、DialogController
スルーDIをに渡し、DialogControllerをctorに注入していますcontainer
。container.get(ReprocessLotDialog)
私も試しまし
container.registerInstance(DialogController,{"dialogController":DialogController});
たが、それもうまくいきません。
どうもありがとう