三角形 javascript 问题/单元测试不起作用(Jasmine)

Posted

技术标签:

【中文标题】三角形 javascript 问题/单元测试不起作用(Jasmine)【英文标题】:Triangle javascript problem/ Unit testing not working (Jasmine) 【发布时间】:2019-07-07 16:55:08 【问题描述】:

我编写了代码来确定三角形是等边三角形、等腰三角形还是不等边三角形。接下来,我想使用 Jasmine 对其进行测试,但我的代码一直失败。我对单元测试很陌生。请帮帮我!

三角形规范:

describe('Determine if a triangle is equilateral, isolene, scalene', 
function () 
  it('equilateral triangles have equal sides', function () 
    var triangle = new isTriangle (5, 5, 5)
    expect(triangle).toEqual("Equilateral");
  );

Triangle.js:

function isTriangle(side1, side2, side3)
  if (side1 === 0 || side2 === 0 || side3 === 0) 
      console.log("Error");
   else if (side1 < 0 || side2 < 0 || side3 < 0) 
      console.log("Error");
   else if (side1 + side2 <= side3 || side1 + side3 <= side2 || side2 +
    side3 <= side1) 
    console.log("Error");
  
  else if (side1 == side2 && side2 == side3) 
    console.log("Equilateral");
   else if (side1 === side2 || side2 === side3 || side1 === side3) 
    console.log("Isosceles");
   else 
    console.log("Scalene");
  
;

isTriangle(6, 6, 5);

【问题讨论】:

【参考方案1】:

有两个问题:

您的isTriangle 函数没有返回结果;它只是用console.log 输出它,但这不算作函数的返回值。所以把你所有的console.log("some result")替换成return "some result"

该函数不是构造函数,因此不应使用new 调用它。在您的测试代码中执行:var triangle = isTriangle (5, 5, 5)

【讨论】:

别忘了mark the answer as accepted。

以上是关于三角形 javascript 问题/单元测试不起作用(Jasmine)的主要内容,如果未能解决你的问题,请参考以下文章

单元测试练习

作业8:单元测试练习

作业8-单元测试练习

单元测试中断言的最佳实践

作业8:单元测试练习

作业八——单元测试练习(个人练习)