EUnit 单元测试框架

EUnit是Erlang语言的一个单元测试框架,它允许自动运行以_test()结尾的函数进行测试。通过使用EUnit的宏,如?assert和?assertEqual,开发者能更方便地进行断言和错误检查,提高测试的清晰度和效率。在示例中展示了如何用宏编写和执行测试用例。
摘要由CSDN通过智能技术生成

EUnit 单元测试框架

1. EUnit是什么

EUnit是一种用于进行单元测试的框架。

从根本上说,就是一种可以自动运行模块中名字以_``test()结尾的函数的方法,EUnit会把这些函数看作单元测试。

使用

-module(le1).
-author("01").
-export([add/2]).

%% ----------------------------------------------------
%% Description: 加法
%% ----------------------------------------------------
add(X, Y) ->
  X + Y.
-module(le1_test).
-author("01").
-export([]).
-include_lib("eunit/include/eunit.hrl").	%%使用Eunit需包含eunit的头文件
%% ----------------------------------------------------
%% Description: 测试
%% ----------------------------------------------------
add_test() ->
  4 = le1:add(2, 2).

在这里插入图片描述
如果把测试改为

add_test() ->
  7 = le1:add(2, 2).

在这里插入图片描述
给出了一些错误信息

使用EUnit宏

EUnit提供了一些非常有用的宏。它们提供了更整洁的报告(包括行号)和更清晰的语义。有了这些宏,我们不仅能知道错误发生了,还能知道出错的原因:

  • ?assert(Expression)和?assertNot(Expression):用来测试布尔值,assert的值不是true,就会显示一条错误,assertNot则相反
  • ?assertEqual(A, B):表达式A和B进行严格的比较(=:=),如果它们不同,会发生错误还有一个与?assertEqual相反的宏?assertNotEqual
  • ?assertMatch(Pattern, Expression):用来进行像Pattern= Expression这种形式的匹配,它不会进行变量绑定
  • ?assertError(Pattern, Expression): 这个宏告诉EUnit,Expression应该导致一个错误
  • ?assertThrow(Pattern, Expression):和?assertError一样,不过针对的是throw(Pattern),此外还有 ?assertExit(Pattern, Expression)

使用:
仍在le1_tests.erl文件中添加

%% ----------------------------------------------------
%% Description: 使用宏后的测试
%% ----------------------------------------------------
new_add_test() ->
    ?assertEqual(4, le1:add(2,2)),
    ?assertEqual(3, le1:add(1,2)),
    ?assert(is_number(le1:add(1,2))),
    ?assertEqual(3, le1:add(1,1)),
    ?assertError(badarith, 1/0).

测试
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值