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