Unit testing 如何对Erlang函数进行单元测试?

Unit testing 如何对Erlang函数进行单元测试?,unit-testing,erlang,Unit Testing,Erlang,我想为这个函数创建一个单元测试, 下面是我的单元测试用例: get_ue_supported_srvcc([]) -> ?SRVCC_3GPP_NONE_SUPPORT; get_ue_supported_srvcc([#sip_contactV{extensionsP = EP} | T]) -> case b2bLib:support_tags_to_value(EP) of ?SRVCC_3GPP_NONE_SUPPORT -> g

我想为这个函数创建一个单元测试, 下面是我的单元测试用例:

get_ue_supported_srvcc([]) ->
    ?SRVCC_3GPP_NONE_SUPPORT;
get_ue_supported_srvcc([#sip_contactV{extensionsP = EP} | T]) ->
    case b2bLib:support_tags_to_value(EP) of
    ?SRVCC_3GPP_NONE_SUPPORT ->
        get_ue_supported_srvcc(T);
    Flag ->
        Flag
    end.
错误是:

support_tags_to_value(FieldStr) ->
    lists:sum([Val || {Tag, Val} <- ?TAGLIST, lists:member(Tag, FieldStr)]).
这意味着测试正在调用一个未定义的函数。要么找不到该模块,要么该模块没有定义具有该名称和arity的函数

整个错误消息有点混乱。现在我们知道出现了一个“函数未定义”错误,我们应该看看这一行:

**error:undef
即使它说错误发生在这个函数中,这是一个未定义的函数。

因此,要么测试的运行方式使其找不到
b2bLib
模块,要么该模块不定义一个名为
support\u tags\u to\u value
的函数,只取一个参数。如果是前者,请将
-pa path/to/ebin
添加到Erlang命令行,以便将正确的目录添加到代码路径。

错误为:

support_tags_to_value(FieldStr) ->
    lists:sum([Val || {Tag, Val} <- ?TAGLIST, lists:member(Tag, FieldStr)]).
这意味着测试正在调用一个未定义的函数。要么找不到该模块,要么该模块没有定义具有该名称和arity的函数

整个错误消息有点混乱。现在我们知道出现了一个“函数未定义”错误,我们应该看看这一行:

**error:undef
即使它说错误发生在这个函数中,这是一个未定义的函数。


因此,要么测试的运行方式使其找不到
b2bLib
模块,要么该模块不定义一个名为
support\u tags\u to\u value
的函数,只取一个参数。如果是前者,请将
-pa path/to/ebin
添加到Erlang命令行,以便将正确的目录添加到代码路径。

您是否可以提供支持标签u to_值的输出([{“+sip.instance”,“{quoted_string,“}},{+g.3gpp.icsi ref”,“urn%3Aurn-7%3A3gpp service.ims.icsi.mmtel},“+g.3gpp.mid call”,“+g.3gpp.srvcc alerting”、“+g.3gpp.ps2cs srvcc orig pre alerting”、“video”])。您可以提供支持标签到值的输出([{“+sip.instance”、{quoted_string”、{“+g.3gpp.icsi ref”、{quoted"字符串、{urn%3urn 7%3gpp service.ims.icsi.mmtel”}、+g.3gpp.mid call”、“+g.3gpp.srvcc pre alerting”、“+g.3gpp pre alerting”?”视频“])。
in function b2bLib:support_tags_to_value/1