私はFlex 3.3を使用しています.hamcrest-as3を使用して、ユニットテストの一部としてリスト内のアイテムメンバーシップをテストしています:
var myList: IList = new ArrayCollection(['a', 'b', 'c']).list;
assertThat(myList, hasItems('a', 'b', 'c'));
問題は、明らかにクラスが反復IList
をサポートしていないことです。for each
たとえば、上記のリストでは、何もトレースされません。
for each (var i: * in myList) { trace (i); }
ただし、Array
またはArrayCollection
同じデータを含む をトレースすることは問題なく機能します。
私がやりたいことは、(既存の に基づいたインターフェースを分解することなく)テストのために をまたは のようIList
に扱うことができるようにすることです。IList
Array
ArrayCollection
override public function matches(collection:Object):Boolean
{
for each (var item:Object in collection)
{
if (_elementMatcher.matches(item))
{
return true;
}
}
return false;
}
これは単に失敗する運命にあるのでしょうか? 補足として、IList インターフェイスがこのように反復できないのはなぜでしょうか? それは間違っているようです。