我试图派发对application:get_env
的调用,但是我正在测试一个使用两组不同的参数调用它的函数。
我像这样设置了两个单独的 var email_regex = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
var mobile_regex = /^09[0-3][0-9]{8}$/u;
var state1 = false;
var state2 = false;
var state3 = false;
var state4 = false;
$("#email").keyup(function () {
if (email_regex.test($(this).val())) {
$(this).removeClass("is-invalid");
$(this).addClass("is-valid");
$("#cn-email").text("");
state1 = true;
} else {
$(this).removeClass("is-valid");
$(this).addClass("is-invalid");
$("#cn-email").text("لطفا یک ایمیل درست وارد کنید.");
$("#cn-email").addClass("text-danger");
state1 = false;
}
if ($(this).val() == "") {
$(this).removeClass("is-valid");
$(this).addClass("is-invalid");
$("#cn-email").text("لطفا ایمیل خود را وارد کنید.");
$("#cn-email").addClass("text-danger");
state1 = false;
}
return state1;
});
$("#name").keyup(function () {
if ($(this).val().length <= 4) {
$(this).removeClass("is-valid");
$(this).addClass("is-invalid");
$("#cn-name").text("نام و نام خانوادگی نمی تواند کمتر از 4 کاراکتر باشد.");
$("#cn-name").addClass("text-danger");
state2 = false;
} else {
$(this).removeClass("is-invalid");
$(this).addClass("is-valid");
$("#cn-name").text("");
state2 = true;
}
if ($(this).val() == "") {
$(this).removeClass("is-valid");
$(this).addClass("is-invalid");
$("#cn-name").text("لطفا نام و نام خانوادگی خود را وارد کنید.");
$("#cn-name").addClass("text-danger");
state2 = false;
}
return state2;
});
$("#mobile").keyup(function () {
if (mobile_regex.test($(this).val())) {
$(this).removeClass("is-invalid");
$(this).addClass("is-valid");
$("#cn-mobile").text("");
state3 = true;
} else {
$(this).removeClass("is-valid");
$(this).addClass("is-invalid");
$("#cn-mobile").text("لطفا یک شماره موبایل درست وارد کنید.");
$("#cn-mobile").addClass("text-danger");
state3 = false;
}
if ($(this).val() == "") {
$(this).removeClass("is-valid");
$(this).addClass("is-invalid");
$("#cn-mobile").text("لطفا شماره موبایل خود را وارد کنید.");
$("#cn-mobile").addClass("text-danger");
state3 = false;
}
return state3;
});
$("#message").keyup(function () {
if ($(this).val().length <= 10) {
$(this).removeClass("is-valid");
$(this).addClass("is-invalid");
$("#cn-message").text("متن پیغام نمی تواند کمتر از 10 کاراکتر باشد.");
$("#cn-message").addClass("text-danger");
state4 = false;
} else {
$(this).removeClass("is-invalid");
$(this).addClass("is-valid");
$("#cn-message").text("");
state4 = true;
}
if ($(this).val() == "") {
$(this).removeClass("is-valid");
$(this).addClass("is-invalid");
$("#cn-message").text("لطفا متن پیغام خود را وارد کنید.");
$("#cn-message").addClass("text-danger");
state4 = false;
}
return state4;
});
$("#submit").click(function () {
$("#contact-form").submit(function (event) {
event.preventDefault();
});
});
调用,但是当我正在测试的函数尝试调用meck:expect
时,它将失败并抛出application:get_env(my_app, my_param_one)
和error:function_clause
。
undefined
如何使用不同的参数值集来实现相同的功能?
答案 0 :(得分:2)
第二个meck:expect(application, get_env, fun(my_app, my_param_one) -> {ok, "my_value_one"} end),
meck:expect(application, get_env, fun(my_app, my_param_two) -> {ok, "my_value_two"} end),
正在覆盖第一个。
每当通过对不同的值集进行模式匹配在Erlang中定义函数时,都用分号分隔每组模式,如下所示:
meck
类似地,当您设置-module(sample).
-export([create_greeting/2]).
create_greeting("Grant", _Greeting) -> io:format("Good day sir!");
create_greeting(Name, Greeting) -> io:format("~s, ~s!", [Greeting, Name]).
语句时,一次定义函数,但用分号分隔每组模式/参数,如下所示:
meck