mardi 13 septembre 2016

How do unit test for erlang function?

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.

I want do unit test fot this function, Here is my unit test cases:

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

But when i run ,i got this error:

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

The error means b2bLib:support_tags_to_value/1 is undef.

The define for this function b2bLib:support_tags_to_value:

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

Aucun commentaire:

Enregistrer un commentaire