javascript - 如何仅使用 jasmine 调试我的函数?

标签 javascript jasmine

我编写了一个函数来检查两个字符串是否是彼此的字谜。然后,我使用 jasmine 为该函数编写了测试用例。我的 checkAnagram 函数出现问题,导致我的 jasmine 测试失败。

接下来怎么办?如何仅使用 jasmine 来调试我的函数?

Check this fiddle

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);
    });

});

最佳答案

如果您使用 karma-runner,即使它来自 Angular 团队,它也不与 Angular 绑定(bind),您可以让 chrome 在 Debug模式下运行 jasmine 测试。 运行 karam 后,通过单击 chrome 窗口上的调试按钮打开 karma 调试窗口,然后打开开发人员工具。 在来源中您应该能够看到 Jasmine 规范。这可能会因您的设置而异,我在 base/src 下看到它。执行断点并重新加载页面。还有鲍勃,你的阿姨。

关于javascript - 如何仅使用 jasmine 调试我的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32594494/

相关文章:

javascript - 在Windows 8 (Js/html) APP中显示特定数量的项目

javascript - window.location.href 附加而不是替换

javascript - 将 svg 保存为 png 图像到磁盘 - 浏览器差异

angularjs - angular beforeEach 注入(inject)导致简单测试失败

javascript - Jasmine 通过抛出异常的测试

selenium-webdriver - 将原生 ES6 Promise 添加到 Typescript 中的 Protractor/WebDriverJS ControlFlow

javascript - 调整大小功能无法正常工作

javascript - 单击时我的事件选项卡/占位符没有相应更改

angular - 如何在测试中模拟 Angular 4.3 httpClient 的错误响应

Angularjs - 在 Protractor e2e 测试中模拟触摸事件