如何在jasmine中存根javascript依赖项(jquery)?
我手头有一些遗留代码,它们是使用/依赖以下堆栈编写的:如何在jasmine中存根javascript依赖项(jquery)?,javascript,jquery,testing,jasmine,Javascript,Jquery,Testing,Jasmine,我手头有一些遗留代码,它们是使用/依赖以下堆栈编写的: jquery 1.8.1 jquery lazyload 1.8.0 D3V2 在我更改代码中的任何内容之前,我想我应该为它编写测试,这样我就什么也做不了了 我之所以选择了rspec,是因为我熟悉rspec 我遇到了一些问题,因为我想为其编写测试的代码依赖于jquery来定义一些“常量”,例如: 我想没有办法不打存根了 我是否应该在jasmine中包含jquery并尝试规范文档? 还是不在jasmine和存根中包含jquery$ 我
- jquery 1.8.1
- jquery lazyload 1.8.0
- D3V2
- 我之所以选择了rspec,是因为我熟悉rspec
$
我担心我可能走错了方向,非常希望得到一些指导(非常感谢代码片段)。谢谢你帮了一个傻瓜 我将包括jQuery并模拟它调用的函数。在你的例子中,我会这样做
spyOn($.fn, 'width').andReturn(300); //Return a value that you expect to be used
Jasmine spies有一个属性calls
,它是所有调用的数组,我做的一件事是检查调用条目,您可以检查调用对象。作为jQuery对象,它有一个属性选择器
,您可以期望它与文档
expect($.fn.width.calls[0].object.selector).toEqual(document);
尽管请记住,您正在尝试测试代码的预期行为,但并非代码的每个步骤都是在编写时完成的。尝试测试某些行是否存在将阻止您轻松重构。我将包括jQuery并模拟它调用的函数。在你的例子中,我会这样做
spyOn($.fn, 'width').andReturn(300); //Return a value that you expect to be used
Jasmine spies有一个属性calls
,它是所有调用的数组,我做的一件事是检查调用条目,您可以检查调用对象。作为jQuery对象,它有一个属性选择器
,您可以期望它与文档
expect($.fn.width.calls[0].object.selector).toEqual(document);
尽管请记住,您正在尝试测试代码的预期行为,但并非代码的每个步骤都是在编写时完成的。尝试测试某些行是否存在会阻止您轻松重构。只是好奇:您有什么样的测试用例?你想测试什么?还没有测试。我对代码还不是很熟悉,大约是2000 LOC,如果我能创建一个测试覆盖率,我相信重构不会破坏行为,我会很高兴。在测试中,我可能会对dom元素属性/属性进行断言?你想测试什么?还没有测试。我对代码还不是很熟悉,大约是2000 LOC,如果我能创建一个测试覆盖率,我相信重构不会破坏行为,我会很高兴。在测试中,我可能会对dom元素属性/属性进行断言。