Spying Private Functions
In case you are only exposing the private methods to stub / spy on with SinonJS, you can keep the method private and do the following instead:
export class SomeClassYouWantToTest {
...
private someMethod(...) { ... }
}
// in test
...
const foo = new SomeClassYouWantToTest();
const someMethodSpy = sinon.spy(foo, "someMethod" as keyof SomeClassYouWantToTest);
...
In TypeScript, private functions and properties are just a suggestion for the type checker. The underlying functions and properties are still actually accessible, so we use a cast to bypass the typechecker.
Backlinks