ASP源码.NET源码PHP源码JSP源码JAVA源码DELPHI源码PB源码VC源码VB源码Android源码
当前位置:首页 >> 软件测试 >> elixir 使用Elixir来优化Erlang的单元测试用例

elixir 使用Elixir来优化Erlang的单元测试用例(1/2)

来源:网络整理     时间:2016-08-15     关键词:elixir

本篇文章主要介绍了"elixir 使用Elixir来优化Erlang的单元测试用例",主要涉及到elixir方面的内容,对于软件测试感兴趣的同学可以参考一下:   erlang的单元测试相信很多人都用过,体验不好,但是elixir出现后,似乎这个体验有机会赶超rspec,那就哈哈哈了。  初学elixir/mix,苦于...

  erlang的单元测试相信很多人都用过,体验不好,但是elixir出现后,似乎这个体验有机会赶超rspec,那就哈哈哈了。

  初学elixir/mix,苦于没有用武之地,其实可以从测试用例开始,毕竟erlang和elixir编译出来的代码是可以完整互相调用的,那么混合在一起也什么困难的。

新建一个rebar工程

  在erlang中我是这样尝试写用例的。

rebar create-app appid=rebar_mix_test

==> rebar_mix_test (create-app)

Writing src/rebar_mix_test.app.src

Writing src/rebar_mix_test_app.erl

Writing src/rebar_mix_test_sup.erl

  现在这个简单的otp应用下面挂一个工作者进程,这个进程有一点简单的api函数。

  mix_worker.erl 简单易懂,实现了add和double函数。

-module(mix_worker).

-behaviour(gen_server).

%% API

-export([start_link/0]).

-export([add/2]).

-export([double/1]).

-record(state, {}).

-define(SERVER, MODULE).

-export([init/1, handle_call/3, handle_cast/2, handle_info/2,

terminate/2, code_change/3]).

start_link() ->

gen_server:start_link({local, SERVER}, MODULE, [], []).

add(A, B) ->

gen_server:call(MODULE, {add, A, B}).

double(A) ->

gen_server:call(MODULE, {double, A}).

init([]) ->

{ok, #state{}}.

handle_call({add, X, Y}, _From, State) ->

{reply, X+Y, State};

handle_call({double, X}, _From, State) ->

{reply, X*2, State};

handle_call(_Request, _From, State) ->

Reply = ok,

{reply, Reply, State}.

handle_cast(_Msg, State) ->

{noreply, State}.

handle_info(_Info, State) ->

{noreply, State}.

terminate(_Reason, _State) ->

ok.

code_change(_OldVsn, State, _Extra) ->

{ok, State}.

  接下来挂到监督者下面

  init([]) ->

  {ok, { {one_for_one, 5, 10}, [CHILD(mix_worker, worker)]} }.

  编译测试:

rebar compile

==> rebar_mix_test (compile)

elixir相关图片

elixir相关文章