我已经在我的项目中编写和使用了一个装饰器,而现在我正试图测试用装饰器包装的函数是包装与装饰者。如何测试一个函数是用装饰器包装的(javascript)
我想我可以测试什么是装饰之内发生的事情正在发生的事情,我已经知道该怎么做,但我更倾向于将完全模拟出的装饰,只是断言功能被包裹着它。
有谁知道如何去做(希望与sinon /柴)?
我已经在我的项目中编写和使用了一个装饰器,而现在我正试图测试用装饰器包装的函数是包装与装饰者。如何测试一个函数是用装饰器包装的(javascript)
我想我可以测试什么是装饰之内发生的事情正在发生的事情,我已经知道该怎么做,但我更倾向于将完全模拟出的装饰,只是断言功能被包裹着它。
有谁知道如何去做(希望与sinon /柴)?
没有关于它们被任何特定函数装饰的对象的元数据 - 装饰器只是语法糖,并且可以以不同的方式应用。
所以,是的,断言装饰者实际发生的事情是唯一的方法。你可以模拟装饰器并明确地测试它是通过设置一个特定的标志或甚至检查装饰器的参数和返回值来应用的,但你可能不应该这样做。修饰器是一个实现细节,不要为它们测试 - 测试修饰器提供的行为。
好的,谢谢你的帮助,我想问一下,如果在另一种情况下倒退,是否有可能。 –
检查装饰者应该与装饰功能/类别 – topheman
Offtop分享的功能。装饰器不是ES7的功能。阶段2呢。 https://github.com/tc39/proposal-decorators – Artin
我不想检查装饰器在做什么,我试图单元测试它。而@Artin你是对的,但我的问题仍然存在,我应该如何编辑问题来反映这个问题? –