2016-09-14 2 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. 

Ich möchte für diese Funktion einen Komponententest erstellen, ist Hier meine Einheit Testfall:Wie testet man eine Erlang-Funktion?

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)). 

Aber wenn ich es laufen lasse, erhalte ich diese Fehlermeldung:

======================== 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] 
======================================================= 

Der Fehler bedeutet b2bLib:support_tags_to_value/1 ist undef.

Die Definition für diese Funktion b2bLib:support_tags_to_value:

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

Können Sie die Ausgabe für 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

Antwort

3

Der Fehler ist:

**error:undef 

Das bedeutet, dass der Test eine Funktion aufruft, die nicht definiert ist. Entweder wurde das Modul nicht gefunden, oder das fragliche Modul definiert keine Funktion mit diesem Namen und dieser Arity.

Die ganze Fehlermeldung ist ein wenig verwirrend. Nun, da wir wissen, dass wir eine „Funktion nicht definiert“ Fehlermeldung anzeigt, sollten wir an dieser Linie suchen:

in function b2bLib:support_tags_to_value/1 

Auch wenn er sagt, dass der Fehler aufgetreten ist „in“ dieser Funktion Dies ist die Funktion, die nicht definiert ist .

Entweder wird der Test so ausgeführt, dass er das Modul b2bLib nicht findet, oder dieses Modul definiert keine Funktion namens support_tags_to_value, die ein Argument verwendet. Wenn es ersteres ist, fügen Sie der Erlang-Befehlszeile -pa path/to/ebin hinzu, um das richtige Verzeichnis zu dem Codepfad hinzuzufügen.

Verwandte Themen