【发布时间】:2014-02-18 16:05:39
【问题描述】:
上下文
我有一段代码通过karma 和jasmine 和phantomjs 作为浏览器运行,我的问题是我无法弄清楚为什么delete 关键字不起作用。我在 phantomjs github 上查找有关关键字支持的提示或清晰文档,但徒劳无功。
更新
实际上它现在似乎也不适用于 chrome...
这是期望的输出
ShopDataServiceTest 不应有实例方法 remove FAILED 预期 { getModelName : Function } 没有“删除”方法。
这是我测试过的代码:
// CRUDService basically returns a new class
// with a prototype containing a method remove
ShopDataService = CRUDService.build(modelName);
delete ShopDataService.prototype.remove;
这里是 karma 执行的代码
expect(ShopDataService.prototype).not.toHaveMethod('remove');
重要提示
这段代码在 karma 下运行,在这种情况下不起作用,但在 chrome 上运行时它可以工作,我是否遗漏了什么在这里?
EDIT我之前没提过,表达式typeof ShopDataService.prototype.remove返回'function',正如ppoliani指出的那样。
【问题讨论】:
标签: javascript unit-testing jasmine phantomjs karma-runner