I am currently evaluating tools for integration testing of Flex applications. Currently I am working with Ranorex and am pretty sattisfied with it ... except that I was having some problems with a spark DropDownList that I use for selecting the language in my main applications skin. The Ranorex support claimed that I shouldn't use "complex controls" such as a DropDownList in a Spark Skin and that a Skin should be treated as nothing else than a complex CSS File.
Well this statement stands in extreme contrast to the way I understood the skinning in flex4. I allways thought the Idea is to define Components in Code (ActionScript ... or MXML) leaving away the design-considerations and to define a skin that places, layouts, formats the controls a component needs. The Component is ideally developed by a Software-Developer and the Skin can be entirely provided by the Designer. This way everybody can work in that domain of expertise that he is best in.
I thought in the component implementation I define SkinParts. These tell the Designer which controls I need and he defines them accordingly in his skin. By giving the control in the skin the same id as the variable-name in the component implementation the Flex framework sets the instance of the control in the component and then calls the partAdded function to tell the component that the control is now available ... well at least this is the way I understood this.
I hope that I understood this correctly and that simply the tool-creators are on the wrong track. If not, I would be really glad to know how I should introduce a DropDownList in my applications skin without actually using a DropDownList.