由于我是单元测试的新手,我想测试我的javascript代码非常混乱..我真的想要一些帮助谁可以告诉我的问题的解决方案。??
if (!Notification) {
Notification = {};
else {
if (typeof Notification != "object") {
throw new Error(" already exists ");
}
}
Notification.admin = function() {
var res = {};
var prevent = "";
var DefaultValue = function(ans, type, commnon, status) {
var notify = type.concat(common);
if ($("#method").val() == "false" && type == "Text") {
if (status) {
return data = '<label class="checkbox-label"><input data-role="ux-checkbox" type="checkbox" disabled="disabled" data-type="' + notify + '" class="grid-checkbox">  </label>';
} else {
return data = '<label class="checkbox-label">' + '<span class="no-checkbox-label" >' + "-" + '</span>' + '</label>';
}
} else if (status) {
if (ans) {
return data = '<label class="checkbox-label"><input data-role="ux-checkbox" checked=checked type="checkbox" data-type="' + notify + '" class="grid-checkbox ">  </label>';
} else {
return data = '<label class="checkbox-label"><input data-role="ux-checkbox" type="checkbox" data-type="' + notify + '" class="grid-checkbox">  </label>';
}
} else {
return data = '<label class="checkbox-label">' + '<span class="no-checkbox-label" >' + "-" + '</span>' + '</label>';
}
};
this.init = function() {
};}; Notification.Obj = new Notification.admin();
$(document).ready(function() {
Notification.Obj.init();
});
这是我的私人功能,我想进行单元测试,因为我正在使用mocha和chai ..
我无法对此功能进行单元测试
答案 0 :(得分:1)
您不会为私人方法编写测试。
公共方法是类的公共接口。从外面调用的那些。私有方法是您不关心的实施细节。
单元测试的范围是测试一个类的所有公共方法。 (不,在课堂上公开私人方法不是解决方案。)
将私有方法的实际业务部分重构为新服务。该服务将具有通过公共方法提供的功能。您可以测试该服务。在您当前的服务中,您可以注入该服务并使用其功能。
话虽如此:你只能对没有副作用的单元测试方法以及你可以嘲笑它的依赖性(依赖注入)。