Jer*_*zka 6 javascript typescript jestjs
我有一个打字稿课程:
\n\nexport class SystemUnderTest {\n\n @LogThisAction('sth was done')\n public doSomething() {} \n\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n正如您所看到的,它使用反射来执行一些装饰函数:
\n\n export declare function LogThisAction(action: string): (target: any) => \n void;\n
Run Code Online (Sandbox Code Playgroud)\n\n当我运行测试时,我不关心实际的实现。这个装饰器函数,所以我尝试像这样模拟它:
\n\n myModule = require(./DecoratorFunctions);\n myModule.LogThisAction = jest.fn();\n
Run Code Online (Sandbox Code Playgroud)\n\n但这似乎不起作用。当我运行测试时我得到:
\n\n\xe2\x97\x8f Test suite failed to run\nTypeError: decorator is not a function\nat DecorateProperty (node_modules/reflect-metadata/Reflect.js:553:33)\n
Run Code Online (Sandbox Code Playgroud)\n\n如何在JEST框架中实现我的目标?
\n从技术上讲,您的装饰器是一个返回另一个函数的函数。
所以你的模拟不正确,它应该返回一个函数,尝试使用:
myModule = require(./DecoratorFunctions);
myModule.LogThisAction = () => jest.fn();
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
14927 次 |
最近记录: |