單元測試返回一系列複雜對象的方法的正確方法是什麼?單元測試一系列複雜對象的正確方法是什麼
我正在實施分支查找程序。我有一個返回Branch
對象,它具有的各種信息,如
- 分公司名稱
- 地址
- 位置
- 產品庫存
我有我有一個倉庫的倉庫僞造爲始終返回Branch
對象的已知序列,我需要測試我的BranchFinder
服務中的邏輯。
Find
方法採用Flags
枚舉形式的位置(緯度/經度)和產品規範。
public IEnumerable<Branch> Find(Location location, Products products);
知道搜索是要操作的數據,我可以放心地指定位置和產品規範,並知道會發生什麼,但我怎麼斷言順序是正確的。
例如
var loc = new Location(53.79424, -1.546112);
var results = service.Find(loc, Products.Milk | Products.Bananas);
我知道該數據的某個子集應按照一定的順序返回,也即:當您在結果集中迭代從當前位置到分支的距離應增加此給出查詢。
什麼是測試這些規則和情況的正確/最佳方法?
這就是我正在做的。我想知道的是最好的方式來斷言結果是正確的。我應該按照@Ricardo的建議逐項完成,還是有更好的方法? – 2011-04-08 10:20:43
@Ricardo的方式也不錯。你coudl使用Enumerable.SequenceEqual(),如果你想,但你必須實現IEqutable比較2分支對象 – 2011-04-08 10:26:13