我正在写一些简单的茉莉花测试,我收到一个例外,因为我正在测试的代码正在寻找一个不存在的表单,因为在测试js文件时没有DOM:$(“form”)[ 0]在测试的js文件中导致:
TypeError: $(...)[0] is undefined
我读了一点关于jasmine-jquery,意识到我可以使用一些html fixture与一个外部html文件.这个流程似乎相当凌乱,因为我需要做的只是添加一个空的有效表单,以便测试(重点放在别的东西)上运行,像< form>< / form>追加就足够了,我想.
解决方法
最简单的解决方案是将自己的表单添加到前一个块中,然后在后一个块中将其删除:
describe(function(){ var form; beforeEach(function(){ form = $('<form>'); $(document.body).append(form); }); it('your test',function(){ }) afterEach(function(){ form.remove(); form = null; }); });
同时写你的沙箱帮手并不那么难:
function sandBox(html){ var el; beforeEach(function(){ el = $(html); $(document.body).append(el); }); afterEach(function(){ el.remove(); el = null; });