![](/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.