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实现这么一个功能来,这样就很方便了。
     
  • 相关阅读:
    怎么样使图片高度与宽度成比例自适应
    css文本溢出隐藏显示省略号(单行+多行)
    Monkey脚本API简介
    Monkey自动化测试
    MonkeyRunner自动化测试
    Shell逐行读取文件的3种方法
    shell脚本中调用其他脚本的三种方法
    CPU测试--通过proc获取CPU信息
    CPU测试--查看cpu占用率
    shell脚本如何获取当前时间
  • 原文地址:https://www.cnblogs.com/samis/p/2040153.html
Copyright © 2011-2022 走看看