简单的TDD Jasmine / Karma测试因未定义的功能而失败

时间:2014-04-18 20:43:32

标签: javascript tdd jasmine bdd karma-runner

我对茉莉/业力全新,并遇到一些问题。当我运行一个简单的

时,测试运行正常
describe('JavaScript addition operator', function () {
    it('adds two numbers together', function () {
        expect(1 + 2).toEqual(3);
    });
});

测试,它通过并且没问题,但我现在想开始在我的其他文件中测试功能,自然地,我从最困难的一个开始,并且平躺在我的脸上。然后我按照列表/错误的方式工作,直到我得到最基本的函数,一个通过接受参数将数字四舍五入到小数位。它给了我一个未定义的错误,所以我认为我移动了该文件中的加法测试只是为了看看我是否特殊并且它也不起作用,所以有人可以告诉我我是什么#39;我做错了吗? :)

我已经在网上打了很长一段时间,但还没找到白痴指南。我希望通过传递我期望的参数来测试我的功能。例如:

describe("round results", function(){

    var myFunc = roundresult(a,b);
    var a = 99.923232;
    var b = 1;

    it("rounds the result to dec places", function(){
        expect(myFunc(a,b).toEqual(99.9));
    });
});

这是函数:

function roundResult(value, places) {
   var multiplier = Math.pow(10, places);
   return (Math.round(value * multiplier) / multiplier);
}

错误:

ReferenceError: roundresult is not defined
at null.<anonymous> (http://localhost:9878/base/tests/objectTests.js:98:18)
at jasmine.Env.describe_ (http://localhost:9878/absolute/usr/local/lib/node_modules/karma-jasmine/lib/jasmine.js:884:21)
at jasmine.Env.describe (http://localhost:9878/absolute/usr/local/lib/node_modules/karma-jasmine/lib/jasmine.js:869:15)
at describe (http://localhost:9878/absolute/usr/local/lib/node_modules/karma-jasmine/lib/jasmine.js:629:27)
at http://localhost:9878/base/tests/objectTestTests.js:96:1 

非常感谢任何帮助,谢谢。

2 个答案:

答案 0 :(得分:1)

describe区块中,roundresult应为roundResult

已解决:您需要文件的顺序决定了在您尝试调用语句时是否已定义语句。使用plnkr.co托管包含多个文件的样本。

答案 1 :(得分:0)

期望(myFunc的(A,B).toEqual(99.9)); //不正确,应该如下所述

期望()toEqual();

你已经调用了函数而不是初始化变量,这也是不正确的:

var myFunc = roundresult(a,b);

var a = 99.923232;

var b = 1;

请看看我的表现如何:

//我创建了test.js

  

描述(&#34;圆形结果&#34;,function(){var a = 99.923232;

     

var b = 1;       var myfunc = roundResult(a,b);

it("rounds the result to dec places", function(){
    expect(myfunc).toEqual(99.923232);
}); 
     

});

// main.js

  

function roundResult(value,places){
  var multiplier = value * places;
  返回乘数;
  }

我希望它能解决你的错误。

感谢。