10、软件测试与开发实践:从单元测试到属性驱动开发

软件测试与开发实践:从单元测试到属性驱动开发

单元测试与系统集成

在软件开发中,单元测试是确保代码质量的重要环节。首先,我们来看一个员工生日邮件发送系统的例子,该系统的模块覆盖率达到了 100%,如下表所示:
| module | coverage |
| — | — |
| bday_csv | 100% |
| bday_employee | 100% |
| bday_filter | 100% |
| total | 100% |

虽然高覆盖率并不意味着没有 bug,但这仍然是一个好的迹象。接下来,我们要完成系统的最后一个任务——模板化,即生成生日邮件的内容。

模板化测试代码

我们以 Erlang 和 Elixir 两种语言为例,展示如何编写模板化的测试代码。

Erlang 代码

-module(prop_bday_mail_tpl).
-include_lib("proper/include/proper.hrl").

prop_template_email() ->
    ?FORALL(Employee, employee_map(),
        nomatch =/= string:find(bday_mail_tpl:body(Employee),
            maps:get("first_name", Employee))
    ).

employee_map() ->
    ?LET(Prop
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值