dart callMatcher命名参数

时间:2014-03-05 22:29:24

标签: unit-testing dart

我关注https://www.dartlang.org/articles/mocking-with-dart/但它没有说明将函数调用与命名参数匹配。我在2012年或2013年初发现了一些帖子,表示它不受支持。有人可以对此说些什么吗?

我的情况很简单 - 如果使用正确的参数调用get方法,我会尝试模拟并返回一些数据

class Client {    
    Future<Map> get(String endpoint, {Map query: const {}, ContentType contentType:null}) {
        ...
    }
}

稍后在测试中我创建了一个模拟

class _ClientMock extends Mock implements Client {}

client = new _ClientMock();

var endpoint = "http://host:8080/hotels";
var query = {"param": "value"};

client.when(callsTo("get", endpoint, query)).thenReturn(new Future.value(serverData));

不幸的是,这不起作用,它只是不接受第三个参数。我试过各种匹配但没有运气。

任何想法?

1 个答案:

答案 0 :(得分:3)

callsTo方法不处理命名参数,CallMatcher.matches方法也没有提供匹配命名参数的方法。

我担心模拟库似乎需要重写来处理命名参数和位置参数。