Это как-то связано с моим другим вопросом: ошибка словаря flex?
В HashMap есть метод getValues (), который возвращает массив значений:
protected var map:Dictionary = null;
public function HashMap(useWeakReferences:Boolean = true)
{
map = new Dictionary( useWeakReferences );
}
public function getValues() : Array
{
var values:Array = [];
for (var key:* in map)
{
values.push( map[key] );
}
return values;
}
В моем классе юнит-теста у меня есть:
private var map:IMap;
[Before]
public function setUp():void
{
map = new HashMap();
map.put("a", "value A");
map.put("b", "value B");
map.put("c", "value C");
map.put("x", "value X");
map.put("y", "value Y");
map.put("z", "value Z");
}
[Test]
public function testGetValues():void
{
assertEquals(map.getValues(), /*what should I put here*/);
}
цикл for (var key:* in map)
перебирает ключи словаря map
, но, похоже, его реализация делает это каким-то случайным образом. Каков наилучший способ написать тест, так как я не знаю, что будет содержать массив, возвращаемый методом getValues?
Я думал, что смогу сделать это, вызвав метод сортировки и сравнив значения, есть ли лучший способ сделать это?
assertEquals(map.getValues().sort(), "value A,value B,value C,value X,value Y,value Z");