我手上有一些遗留代码,用/依赖于以下堆栈编写:
在我更改代码中的任何内容之前,我认为我为它编写测试,所以我可以不做任何刹车:)。
我遇到了一些问题,因为代码我想编写测试依赖于jquery 来定义一些“常量”,例如:
var WIDTH = $(document).width();
我想没有办法解决问题。
$
?我担心我可能会走错方向并且非常欣赏一些指导(非常感谢代码片段)。谢谢你帮助一个菜鸟!
答案 0 :(得分:1)
我会包含jQuery并模拟它调用的函数。在你的例子中,我会这样做。
spyOn($.fn, 'width').andReturn(300); //Return a value that you expect to be used
Jasmine间谍有一个属性calls
,它是所有调用的数组,我所做的一件事是检查调用条目,你可以检查调用对象。这是一个jQuery对象,它具有属性selector
,您可以期望它等于document
expect($.fn.width.calls[0].object.selector).toEqual(document);
虽然记得您正在尝试测试代码的预期行为,但并不是代码的每一步都在编写时完成。试图测试某些行存在会阻止您轻松重构。