首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >How to meck:期望函数具有多个属性

How to meck:期望函数具有多个属性
EN

Stack Overflow用户
提问于 2017-02-10 22:56:45
回答 1查看 364关注 0票数 1

我在一个模块中有一个函数,它有多个函数子句,用于相同的函数名称,但不同的函数本质。

示例:

代码语言:javascript
复制
-module(module_name).

-export([func/1, func/2, func/3]).

func(N) ->
    N.

func(N, K) -> 
    N * K.

func(N, K, M) ->
    N * K * M.

出于测试的目的,我想模拟这个函数,这样它就不会将数字相加,而是将它们相加。

我知道如何模拟一个函数只有一种情况:

代码语言:javascript
复制
1> meck:expect(module_name, func, fun(N, K, M) -> N + K + M end).

但是我怎么才能嘲笑它的多义性呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-11 00:13:56

在Erlang中,同名不同的函数不是同一个函数的子句,而是完全不同的函数。名字func/1func/2func/3暗示了这一点。

Meck的工作方式相同,将这三个函数视为不同的函数,而不考虑它们之间的任何关系。meck:expect通过检查传递给它的fun来确定要模拟的函数的一致性,因此您可以像这样模拟三个不同的函数:

代码语言:javascript
复制
meck:expect(module_name, func, fun(N) -> N end).
meck:expect(module_name, func, fun(N, K) -> N + K end).
meck:expect(module_name, func, fun(N, K, M) -> N + K + M end).
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42162366

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档