typescript + jest
5054 ワード
singletonクラスのmock化
テスト対象が依存しているsingletonクラスの雛形
singleton.ts
export class singleton {
private static instance_:instance_
public static instance():singleton {
if (!this.instance_) {
this.instance_ = new singleton()
}
return this.instance_
}
private constructor(){}
public func1() {}
public func2() {}
}
テストターゲットクラス
hoge.ts
import {singleton} from "./singleton"
export class hoge {
public hoge() {
singleton.instance().func1()
}
public piyo() {
singleton.instance().func2()
}
}
hoge.tsのテストコード
hoge.test.ts
import {singleton} from "./singleton"
const mock_instance = jest.fn()
const mock_func1 = jest.fn()
const mock_func2 = jest.fn()
jest.mock("./singleton")
mock_instance.mockImplementation(()=>{
return {
func1: mock_func1 ,
func2: mock_func1
}
})
singleton.Instance = mock_instance
自動生成されたモックをベースに手動でモックを作っています。
これでhoge.tsが参照するsingletonクラスはモック化されているので、
テストを行うことができます。
注意点は以下です
- mock_instance変数名はmockから始める必要があります。
- singletonクラスのinstance関数にget修飾子を使用することはできません。
Author And Source
この問題について(typescript + jest), 我々は、より多くの情報をここで見つけました https://qiita.com/yuujikunnkamoyo/items/33b60997b0305317e587著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .