1
我想检查对象是否在名称空间中有一个已定义的成员。如果试图用hasOwnProperty
法的QName,但它不支持:如何检查对象是否在名称空间内有属性?
package {
import flexunit.framework.Assert;
public class ObjectTest extends Object {
public namespace some_public_namespace;
some_public_namespace var definedMember : String;
[Test]
public function testMemberWithinNamespace() : void {
// this should be elegant way... but actualy it doesn't work
try {
Assert.assertTrue("Expect hasOwnProperty method work with QName", this.hasOwnProperty(new QName(some_public_namespace, "definedMember")));
} catch (error : Error) {
Assert.assertTrue("hasOwnProperty method failed to work with QName", false);
}
// this is non elegant way that works
try {
this[ new QName(some_public_namespace, "definedMember") ];
Assert.assertTrue("Expect no error", true);
} catch (error : Error) {
Assert.assertTrue("Expect this line not to be runned", false);
}
try {
this[ new QName(some_public_namespace, "undefinedMember") ];
Assert.assertTrue("Expect this line not to be runned", false);
} catch (error : Error) {
Assert.assertTrue("Expect property doesn't exist", true);
}
}
}
}