gpt4 book ai didi

javascript - 使用 JasmineJS 测试输入是否为字母数字

转载 作者:行者123 更新时间:2023-12-03 08:17:49 24 4
gpt4 key购买 nike

我今天的最后一个问题并不是一个真正的问题,我想听听您对我创建的这个 JasmineJS 测试代码的看法,该代码是为了测试用户是否输入了字母数字。

我有一个名为 username 的 HTML 输入框:

Username: <input type="text" name="username" id="username" class="input" value="testinput" />

我创建了一个 Javascript 函数来过滤用户输入(无论输入是否为字母数字)。

function acceptOnlyAlphanumeric() {
var usernameInput = document.register.username.value;

if(!/^[a-zA-Z0-9]+$/.test(usernameInput)) {
console.log("Please enter only numbers and letters. No special character!")
return true;
}
return false;
}

在我的 JasmineJS 文件夹中,我创建了一个服务文件来测试过滤用户输入功能。我的服务是这样的:

Services = {
userFilter : function () {
var usernameInput = 'ThisIsAnAlphanumeric112233';

if(!/^[a-zA-Z0-9]+$/.test(usernameInput)) {
console.log("Please enter only numbers and letters. No special character!")
return true;
}
return false;
}
};

然后我的 Jasmine 脚本是这样的:

describe("Test if user enters an acceptable user input which is alphanumeric", function () {
it("Should test if user enters alphanumeric or not", function () {
expect(Services.userFilter()).toEqual(false);
});
});

一切正常,但我担心测试的有效性。底部问题是,这是使用 JasmineJS 测试 javascript 函数的正确方法吗?谢谢

最佳答案

好的测试以及好的代码都是模块化的。您只是测试您的代码是否返回 false。要检查您的代码是否正确测试字符串是否为字母数字,您需要针对字母数字字符串以及非字母数字字符串进行测试。我会将字符串传递到您正在测试的函数中。

Services = {
userFilter : function (userInput) {
//var usernameInput = 'ThisIsAnAlphanumeric112233';
if(!/^[a-zA-Z0-9]+$/.test(userInput)) {
console.log("Please enter only numbers and letters. No special character!")
return true;
}
return false;
}
};




describe("Test if user enters an acceptable user input which is alphanumeric", function () {
it("Should test if user enters alphanumeric or not", function () {
expect(Services.userFilter('ThisIsAnAlphanumeric112233')).toEqual(true);
});
});
describe("Test if user enters an acceptable user input which is alphanumeric", function () {
it("Should test if user enters alphanumeric or not", function () {
expect(Services.userFilter('ThisIsAnAlphanumeric#$$@@')).toEqual(false);
});
});

关于javascript - 使用 JasmineJS 测试输入是否为字母数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33864335/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com