[英]Triangle javascript problem/ Unit testing not working (Jasmine)
I written code to determine if a triangle is equilateral, isosceles, or scalene. 我编写了代码来确定三角形是等边的,等腰的还是斜角的。 Next, I'm suppose to test it using Jasmine but my code keep failing. 接下来,我想使用Jasmine对其进行测试,但是我的代码仍然失败。 I am very new to unit testing. 我是单元测试的新手。 Please help me! 请帮我!
TriangleSpec: TriangleSpec:
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: 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);
There are two issues: 有两个问题:
Your isTriangle
function is not returning the result; 您的isTriangle
函数不返回结果; it merely outputs it with console.log
, but that does not count as the return value of a function. 它仅使用console.log
输出它,但是不算作函数的返回值。 So replace all your console.log("some result")
to return "some result"
因此,替换所有的console.log("some result")
以return "some result"
The function is not a constructor, so it should not be called with new
. 该函数不是构造函数,因此不应使用new
调用它。 In your test code just do: var triangle = isTriangle (5, 5, 5)
在您的测试代码中,只需执行: var triangle = isTriangle (5, 5, 5)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.