2014-03-05 42 views
2

我正在關注https://www.dartlang.org/articles/mocking-with-dart/,但它沒有說明將調用與命名參數進行匹配的功能。我從2012年或2013年初發現了一些帖子,說它不被支持。有人可以說這個嗎?dart callMatcher命名參數

我的情況很簡單 - 我試圖嘲弄和返回一些數據,如果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)); 

不幸的是這不起作用,它只是不接受第三個參數。我嘗試了各種匹配器,但沒有運氣。

有什麼想法?

回答

3

callsTo方法不處理命名參數,CallMatcher.matches方法也不提供匹配命名參數的方法。

恐怕好像模擬庫需要重寫來處理命名參數以及位置參數。

+0

你知道有這樣做的計劃嗎?無論如何,我希望它是仿照mockito :-) – kamiseq

+0

恐怕我對單元測試框架計劃一無所知,抱歉。 – lrn

+0

不錯,謝謝。 – kamiseq