Javascript 使用jasmine对输入字段进行单元测试

Javascript 使用jasmine对输入字段进行单元测试,javascript,jquery,jasmine,Javascript,Jquery,Jasmine,我在javascripts/fixtures/form.html中有一个表单。我正在检查我的字段是否为空或包含少于八个字符或具有特殊字符 it("Username should not be empty", function(){ spyOn($("#name"), "val").and.returnValue("Java"); var result = $("#name").val(); expect(result).toEqual("Jav

我在
javascripts/fixtures/form.html
中有一个表单。我正在检查我的字段是否为
或包含
少于八个字符
或具有
特殊字符

  it("Username should not be empty", function(){
        spyOn($("#name"), "val").and.returnValue("Java");
        var result = $("#name").val();
        expect(result).toEqual("Java");
    });

    it("Username should be of the length greater than eight", function(){
        spyOn($("#name"), "val").and.returnValue("Java");
        var result = $("#name").val();
        expect(result).toEqual("Java");
    });

    it("Username should not contain special characters", function(){
        spyOn($("#name"), "val").and.returnValue("Java");
        var result = $("#name").val();
        expect(result).toEqual("Java");
    });

我不确定这是否是进行单元测试的正确方法。有谁能指导我如何在这三种情况下对输入字段进行单元测试。

您不能直接用以下方法检查输入数据:

   var result = $("#name").val();
   expect(result).toEqual("Java");
要检查输入字段值,您可以加载/设置装置,并将值分配给装置,读取装置的输入数据,然后使用.toEqual(“”)或其他方法进行检查

您可以参考此代码检查输入字段值:

var value = 'some value';
var differentValue = 'different value';

beforeEach(function () {
  setFixtures($('<input id="sandbox" type="text" />').val(value));
});

it("should pass if value matches expectation", function () {
  expect($('#sandbox')).toHaveValue(value);
  expect($('#sandbox').get(0)).toHaveValue(value);
});
var value='some value';
var DifferentitValue=‘不同值’;
beforeach(函数(){
固定装置($('').val(值));
});
它(“如果值与期望值匹配,则应传递”,函数(){
expect($('#sandbox')).toHaveValue(value);
expect($('#sandbox').get(0)).toHaveValue(value);
});
我希望此url将帮助您更多地了解设备: