zoukankan      html  css  js  c++  java
  • Eunit的测试使用

    在《Erlang编程指南》中第19章专门讲解Eunit测试驱动开发,测试了其中的一个例子,贴出来备忘

    待测试的文件serial.erl						
    -module(serial).
    -export([treeToList/1,listToTree/1,tree0/0,tree1/0]).
    
    treeToList({leaf,N})->
        [2,N];
    treeToList({node,T1,T2}) ->
        TTL1 = treeToList(T1),
        [Size1|_] = TTL1,
        TTL2 = treeToList(T2),
        [Size2|_] = TTL2,
        [Size1+Size2+1|TTL1++TTL2].
    
    listToTree([2,N]) ->
        {leaf,N};
    listToTree([_|Code]) ->
        case Code of
    	[M|_]->
    	    {Code1,Code2} = lists:split(M,Code),
    	    {node,
    	     listToTree(Code1),
    	     listToTree(Code2)
    	    }
        end.
    
    tree0() ->
        {leaf,ant}.
    tree1() ->
        {node,
         {node,
          {leaf,cat},
          {node,
           {leaf,dog},
           {leaf,emu}
          }
         },
         {leaf,fish}
        }.
    

    下面是测试的文件 serial_tests.erl

    -module(serial_tests).
    -include_lib("eunit/include/eunit.hrl").
    -import(serial,
    	[treeToList/1,listToTree/1,tree0/0,tree1/0]).
    
    leaf_test()->
        ?assertEqual(tree0(), listToTree(treeToList(tree0()))).
    
    mod_test() ->
        ?assertEqual(tree1(), listToTree(treeToList(tree1()))).
    
    在erlang的shell中,执行serial_tests:test().来启动测试。
    serial_tests.erl 添加-include_lib("eunit/include/eunit.hrl"). ,所以自动添加test()方法,并且在test()
    方法中,自动调用以“_test”后缀的方法
    本方法将测试函数放到一个独立的带_tests的文件中。
    可以考虑通过工具自动生成测试文件(带“_tests”的文件)的基础架构,下一步想办法使用erlang实现这么一个功能来,这样就很方便了。
     
  • 相关阅读:
    如何闪开安装VS2013必须要有安装IE10的限制
    Java从键盘输入
    Java基本数据类型和关键字
    openssl windows编译 32位&64位
    eclipse代码提示配置
    手动启动Android模拟器
    Android编程中的实用快捷键
    pat1023. Have Fun with Numbers (20)
    pat1022. Digital Library (30)
    pat1020. Tree Traversals (25)
  • 原文地址:https://www.cnblogs.com/samis/p/2040153.html
Copyright © 2011-2022 走看看