软件测试与开发实践:从单元测试到属性驱动开发
单元测试与系统集成
在软件开发中,单元测试是确保代码质量的重要环节。首先,我们来看一个员工生日邮件发送系统的例子,该系统的模块覆盖率达到了 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
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



