0
我写了一个函数来检查2个字符串是否是对方的字典。然后,我用茉莉花为该函数编写测试用例。我的checkAnagram功能有问题,因为我的茉莉花测试失败了。如何使用jasmine调试我的函数?
下一步是什么?我如何使用茉莉花来调试我的功能?
var anagrams = {
checkAnagram : function(string1, string2) {
var that = this;
var count1 = that.countLetters(string1);
var count2 = that.countLetters(string2);
var anagram = true;
for(var i in count1) {
if(count2[i] && count1[i]==count2[i]) {
anagram = true;
} else {
anagram = false;
}
}
return anagram;
},
countLetters : function(str) {
var obj = {};
for(var char in str) {
if(!obj[char]) {
obj[char]=1;
} else {
obj[char]++;
}
}
return obj;
}
}
describe("Checks if strings are anagrams of each other", function(){
it("Anagram checker works", function(){
expect(anagrams.checkAnagram("god","dog")).toEqual(true);
expect(anagrams.checkAnagram("god","doge")).toEqual(false);
});
});
我对Jasmine没有什么特别的了解 - 但是函数失败了,因为'doge'有更多的字母而不是'god',但迭代器只是迭代'god'的字母。如果你要检查两个输入的长度是否相同,在for循环之前,你会很好。 – HPierce
我同意HPierce。长度应该是你的第一次检查。 – MBielski
经过仅5分钟的研究(请纠正我,如果我错了),它看起来像Jasmine.js不打算调试_只是测试。所有的调试都是使用传统的调试技术完成的,编写调试指南远远超出了SO问题的范围。 – HPierce