使用Jasmine测试JavaScript文本输入验证功能

时间:2018-07-18 15:05:48

标签: javascript jquery jasmine

我编写了一个简单的validate.js函数,用于验证表单中的文本输入,并在单击“提交”按钮后触发了该函数。我想使用茉莉花来测试它,而茉莉花不是通过函数获取返回值。我不确定该怎么做,但是我的代码如下:

validateTexts.js

function validateText() {
  var questionText = document.getElementById("questionText").value.trim();
  if (questionText.length < 1) {
    return false;
  }
  return true;
};

ValidateTextSpec.js

describe(
  "validateText tests",
  function() {
    const spaceValue = " ";
    const valueOfSearchText = "Sample search text";

    beforeEach(function() {
      $('<form action="javascript:void(0)" id = "questionSearchForm" > <input type="text" id="questionText" name="searchText" value=""/>' +
        '<button type="submit" id="submitButton" onclick="return validateQuestionSearchInput();" ></form>').appendTo('body');
    });
    it("when value is just space, it should return false", function() {
      var spyEvent = spyOnEvent('#submitButton', 'click');
      $("#questionText").val(spaceValue);
      var r = $("#questionText").val();
      var returnedValue = $("#submitButton").click();
      expect(returnedValue).toEqual(false);
      console.log(returnedValue);
    });
  });

由于此时的文本值仅是空格,因此不应提交表单,并且onclick的返回值应为false。而不是返回

init [button#submitButton, context: document, selector: "#submitButton"] 

有很多细节。我是茉莉花测试的新手,所以不知道如何在输入有效或无效时获取true或false。 预先感谢!

0 个答案:

没有答案