2016-09-14 35 views
0
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. 

我想创建此功能的单元测试, 这里是我的单元测试情况:如何对Erlang函数进行单元测试?

get_ue_supported_srvcc_test() -> 
    Contact = 
    [#sip_contactV{extensionsP = 
       [{"+sip.instance", 
      {quoted_string,"<urn:gsma:imei:35502406-005233-0>"}}, 
       {"+g.3gpp.icsi-ref", 
      {quoted_string,"urn%3Aurn-7%3A3gpp-service.ims.icsi.mmtel"}}, 
       "+g.3gpp.mid-call", 
       "+g.3gpp.srvcc-alerting", 
       "+g.3gpp.ps2cs-srvcc-orig-pre-alerting", 
       "video"]}], 

    ?assertEqual(7, b2bAtcfLib:get_ue_supported_srvcc(Contact)). 

但是当我运行它,我得到这个错误:

======================== EUnit ======================== 
module 'b2bAtcfLib' 
    b2bAtcfLib_tests: get_ue_supported_srvcc_test (module 'b2bAtcfLib_tests')...*failed* 
in function b2bLib:support_tags_to_value/1 
    called as support_tags_to_value([{"+sip.instance",{quoted_string,"<urn:gsma:imei:35502406-005233-0>"}}, 
{"+g.3gpp.icsi-ref", 
    {quoted_string,"urn%3Aurn-7%3A3gpp-service.ims.icsi.mmtel"}}, 
"+g.3gpp.mid-call","+g.3gpp.srvcc-alerting", 
"+g.3gpp.ps2cs-srvcc-orig-pre-alerting","video"]) 
in call from b2bAtcfLib:get_ue_supported_srvcc/1 (src/b2bAtcfLib.erl, line 1735) 
in call from b2bAtcfLib_tests:'-get_ue_supported_srvcc_test/0-fun-0-'/1 (test/unit/b2bAtcfLib_tests.erl, line 49) 
in call from b2bAtcfLib_tests:get_ue_supported_srvcc_test/0 
**error:undef 
    output:<<"">> 

    [done in 0.008 s] 
======================================================= 

错误意味着b2bLib:support_tags_to_value/1undef

的规定这个功能b2bLib:support_tags_to_value

support_tags_to_value(FieldStr) -> 
    lists:sum([Val || {Tag, Val} <- ?TAGLIST, lists:member(Tag, FieldStr)]). 
+0

您能否提供support_tags_to_value的输出([{“+ sip.instance”,{quoted_string,“”}}, {“+ g.3gpp.icsi -ref“, {quoted_string,”urn%3Aurn-7%3A3gpp-service.ims.icsi.mmtel“}}, ”+ g.3gpp.mid-call“,”+ g.3gpp.srvcc-alerting“ , “+ g.3gpp.ps2cs-srvcc-orig-pre-alerting”,“video”])。 – byaruhaf

回答

3

的错误是:

**error:undef 

这意味着测试呼叫,这不是定义的函数。无法找到该模块,或者该模块未定义具有该名称和参数的功能。

整个错误信息有点混乱。现在我们知道,我们得到了一个“函数未定义”的错误,我们应该看这条线:

in function b2bLib:support_tags_to_value/1 

即使它说:“在”此功能发生错误,这是这是未定义功能。

所以无论是测试以这样一种方式,它没有找到b2bLib模块或模块不定义一个名为support_tags_to_value带一个参数的功能运行。如果是前者,则将-pa path/to/ebin添加到Erlang命令行中,以便将正确的目录添加到代码路径中。

相关问题