运动机器人名称,构造函数和Jasmine测试套件

时间:2017-07-13 21:29:12

标签: javascript jasmine

我完全错过了什么。我确定这是一个简单的但不确定我哪里出错了。

所以这是我试图运行的测试:

var Robot = require("./robot-name");

describe("Robot", function() {

  var robot;

  beforeEach(function() {
    robot = new Robot();
  });

  afterEach(function() {
    robot = null;
  });

  it("has a name", function() {
    expect(robot.name).toMatch(/^[A-Z]{2}\d{3}$/);
  });
});

这就是我写的功能:

function Robot() {
  var robotName = "CD123";

  function randomName() {
    return robotName;
  }

  return {
    name: randomName
  };
}
module.exports = Robot;

每当我在终端上运行测试时,我都会收到此消息

Expected Function to match /^[A-Z]{2}\d{3}$/

我不希望它说Expected "CD123" to match etc..即使它没有通过测试吗?

感谢!!!!

1 个答案:

答案 0 :(得分:1)

randomName是一个返回字符串"CD123"的函数。如果要将字符串分配给机器人的name属性而不是函数本身,则必须调用该函数:

function Robot() {
  var robotName = "CD123";

  function randomName() {
    return robotName;
 }

  return {
    name: randomName()
                    ^
   };
}
module.exports = Robot;

要进行快速测试,请转到http://tddbin.com/#并将代码粘贴到那里。