![](/img/trans.png)
[英]How do you reset the test subject in between tests in jest with typescript?
[英]How to reset a class in Jest/Typescript
有沒有一種方法可以重置類,這樣我就不需要為每個測試實例化它們? 現在我正在調用: const animalManager = new AnimalManager();
對於每個測試
我試過這個:
beforeEach(() => {
AnimalManager.mockClear();
});
but get the error: Property 'mockClear' does not exist on type 'typeof AnimalManager
我目前的測試:
describe("default subscription actions", ()=>{
const tigerObserver= new TigerObserver();
const fishObserver = new FishObserver();
describe("subscribe", ()=>{
const animalManager = new AnimalManager();
animalManager.subscribe(tigerObserver)
animalManager.subscribe(fishObserver)
it(`adds new subscribers`, () => {
expect(animalManager.subscribers.length).toEqual(2);
});
})
describe("unsubscribe", ()=>{
const animalManager = new AnimalManager();
animalManager.subscribe(tigerObserver)
animalManager.subscribe(fishObserver)
it(`removes subscriber`, () => {
expect(animalManager.subscribers.length).toEqual(1);
});
});
動物 class:
interface Subject {
subscribe(subscriber: Observer): void;
unsubscribe(subscriber: Observer): void;
notify(): void;
}
export default class AnimalManager implements Subject {
public subscribers: Observer[] = [];
您可以將變量animalManager
移到測試 scope 之外,並使用beforeEach
回調實例化一個新的 AnimalManager。
describe("default subscription actions", ()=>{
const tigerObserver= new TigerObserver();
const fishObserver = new FishObserver();
const animalManager;
beforeEach(() => {
// the animalManager will be reinstantiated before each test.
animalManager = new AnimalManager();
})
describe("subscribe", ()=>{
animalManager.subscribe(tigerObserver)
animalManager.subscribe(fishObserver)
it(`adds new subscribers`, () => {
expect(animalManager.subscribers.length).toEqual(2);
});
})
/** ... **/
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.