单元测试返回一系列复杂对象的方法的正确方法是什么?单元测试一系列复杂对象的正确方法是什么
我正在实施分支查找程序。我有一个返回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