【问题标题】:how should i test two erlang gen_servers我应该如何测试两个 erlang gen_servers
【发布时间】:2012-07-25 17:49:58
【问题描述】:

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

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

我在 shell 中对此进行了测试,它可以正常工作,但是测试此类代码的正确工具/方法是什么?我应该使用 eunit 还是有其他更合适的工具?

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

【问题讨论】:

    标签: testing erlang


    【解决方案1】:

    您绝对可以为每个 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

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

    【讨论】:

      猜你喜欢
      • 2023-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-01
      • 2015-06-15
      • 1970-01-01
      • 2023-03-28
      相关资源
      最近更新 更多