2

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

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

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

此外,我想知道我应该实际测试什么?只有发送部分还是也用于数据包构造?

4

1 回答 1

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

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

于 2012-07-25T09:49:58.407 回答