我该如何测试两个erlang gen_servers

时间:2012-07-25 09:07:44

标签: testing erlang

我有两个使用gen_tcp套接字进行通信的gen_servers。

第一个gen_server导出一个函数,当调用构建(调用另一个函数)RFC 791数据包时,连接到另一个gen_server正在侦听传入连接的套接字,并将数据包发送给它。

我在shell中对它进行了测试并且它正在运行,但是测试这样的代码的正确工具/方法是什么?我应该使用eunit或者还有其他更合适的工具吗?

而且我想知道我应该测试什么?只有发送部分或数据包构建功能?

1 个答案:

答案 0 :(得分:3)

你绝对可以为每个gen_servers编写一些EUnit测试:

http://www.erlang.org/doc/apps/eunit/chapter.html

http://learnyousomeerlang.com/eunit#the-need-for-tests

您还可以查看Common Test来测试交互:

http://www.erlang.org/doc/apps/common_test/basics_chapter.html

http://learnyousomeerlang.com/common-test-for-uncommon-tests#what-is-common-test

由于您的实施很大程度上取决于传递的数据,我将看一下QuickCheck Mini或PropEr提供的生成器:

http://www.quviq.com/

http://proper.softlab.ntua.gr/

有关如何使用QuickCheck mini等功能改进单元测试的简要说明,请点击此处:

http://www.erlang-solutions.com/upload/docs/85/EUG-London-Apr2011.pdf

首先,我将专注于测试您导出的功能(模块接口)。您以后仍可以添加更多测试。