Skip to main content
October 24, 2011
Question

Strange behaviour when running parameterized test

  • October 24, 2011
  • 1 reply
  • 4362 views

Hello,

I am using Flex 4.5 and FlexUnit 4.1 inside of the Flashdevelop IDE and I am experiencing some very strange behaviour.

If I have 5 parameters to my test the test runs fine. When I add a sixth parameter of the type Array, I get the following error:

"TypeError: Error #1009: Cannot access a property or method of a null object reference."

Please see below for my example code.

The following parameterized test case runs without a problem:

package {

    import org.flexunit.runners.Parameterized;

    [RunWith('org.flexunit.runners.Parameterized')]

    public class ParameterizedTest {

        [Parameters]

        public static var testData:Array = [

            [1,1,new Array(),1,1]

        ];

        public function ParameterizedTest(

            param1:uint,

            param2:uint,

            param3:Array,

            param4:uint,

            param5:uint

        ):void {

        }

        [Test]

        public function testOne():void {

            // Test to go here.

        }

    }

}

When I add an Array as the sixth parameter :

package {

    import org.flexunit.runners.Parameterized;

   

   

    [RunWith('org.flexunit.runners.Parameterized')]

    public class ParameterizedTest {

        [Parameters]

        public static var testData:Array = [

            [1,1,new Array(),1,1,new Array()]

        ];

       

       

        public function ParameterizedTest(

            param1:uint,

            param2:uint,

            param3:Array,

            param4:uint,

            param5:uint,

            param6:Array

        ):void {

        }

       

       

        [Test]

        public function testOne():void {

            // Test to go here.

        }

    }

}

I get this error :

com.berog.proj_drum_machine.tests.matrix_test_suite.test_cases::MatrixConstructorTest.testOne (1,1,,1,1,) .

TypeError: Error #1009: Cannot access a property or method of a null object reference.

    at flex.lang.reflect::Constructor/newInstanceApply()

    at TestClassRunnerForParameters/createTest()

    at org.flexunit.runners::BlockFlexUnit4ClassRunner/methodBlock()

    at org.flexunit.runners::BlockFlexUnit4ClassRunner/runChild()

    at org.flexunit.internals.runners::ChildRunnerSequencer/executeStep()

    at org.flexunit.internals.runners.statements::StatementSequencer/handleChildExecuteComplete()

    at org.flexunit.internals.runners.statements::StatementSequencer/evaluate()

    at org.flexunit.runners::ParentRunner/run()

    at org.flexunit.runners::Parameterized/runChild()

    at org.flexunit.internals.runners::ChildRunnerSequencer/executeStep()

    at org.flexunit.internals.runners.statements::StatementSequencer/handleChildExecuteComplete()

    at org.flexunit.internals.runners.statements::StatementSequencer/evaluate()

    at org.flexunit.runners::ParentRunner/run()

    at org.flexunit.runners::Suite/runChild()

    at org.flexunit.internals.runners::ChildRunnerSequencer/executeStep()

    at org.flexunit.internals.runners.statements::StatementSequencer/handleChildExecuteComplete()

    at org.flexunit.internals.runners.statements::StatementSequencer/evaluate()

    at org.flexunit.runners::ParentRunner/run()

    at org.flexunit.runners::Suite/runChild()

    at org.flexunit.internals.runners::ChildRunnerSequencer/executeStep()

    at org.flexunit.internals.runners.statements::StatementSequencer/handleChildExecuteComplete()

    at org.flexunit.internals.runners.statements::StatementSequencer/evaluate()

    at org.flexunit.runners::ParentRunner/run()

    at org.flexunit.runner::FlexUnitCore/beginRunnerExecution()

    at org.flexunit.runner::FlexUnitCore/runRunner()

    at org.flexunit.runner::FlexUnitCore/runRequest()

    at org.flexunit.runner::FlexUnitCore/runClasses()

    at Function/http://adobe.com/AS3/2006/builtin::apply()

    at org.flexunit.runner::FlexUnitCore/run()

    at com.berog.proj_drum_machine.tests::TestMain()

com.berog.proj_drum_machine.tests.matrix_test_suite.test_cases::MatrixConstructorTest.testOne (1,1,,1,1,) E

Time: 0.013

There was 1 failure:

1 com.berog.proj_drum_machine.tests.matrix_test_suite.test_cases::MatrixConstructorTest.testOne (1,1,,1,1,) TypeError: Error #1009: Cannot access a property or method of a null object reference.

    at flex.lang.reflect::Constructor/newInstanceApply()

    at TestClassRunnerForParameters/createTest()

    at org.flexunit.runners::BlockFlexUnit4ClassRunner/methodBlock()

    at org.flexunit.runners::BlockFlexUnit4ClassRunner/runChild()

    at org.flexunit.internals.runners::ChildRunnerSequencer/executeStep()

    at org.flexunit.internals.runners.statements::StatementSequencer/handleChildExecuteComplete()

    at org.flexunit.internals.runners.statements::StatementSequencer/evaluate()

    at org.flexunit.runners::ParentRunner/run()

    at org.flexunit.runners::Parameterized/runChild()

    at org.flexunit.internals.runners::ChildRunnerSequencer/executeStep()

    at org.flexunit.internals.runners.statements::StatementSequencer/handleChildExecuteComplete()

    at org.flexunit.internals.runners.statements::StatementSequencer/evaluate()

    at org.flexunit.runners::ParentRunner/run()

    at org.flexunit.runners::Suite/runChild()

    at org.flexunit.internals.runners::ChildRunnerSequencer/executeStep()

    at org.flexunit.internals.runners.statements::StatementSequencer/handleChildExecuteComplete()

    at org.flexunit.internals.runners.statements::StatementSequencer/evaluate()

    at org.flexunit.runners::ParentRunner/run()

    at org.flexunit.runners::Suite/runChild()

    at org.flexunit.internals.runners::ChildRunnerSequencer/executeStep()

    at org.flexunit.internals.runners.statements::StatementSequencer/handleChildExecuteComplete()

    at org.flexunit.internals.runners.statements::StatementSequencer/evaluate()

    at org.flexunit.runners::ParentRunner/run()

    at org.flexunit.runner::FlexUnitCore/beginRunnerExecution()

    at org.flexunit.runner::FlexUnitCore/runRunner()

    at org.flexunit.runner::FlexUnitCore/runRequest()

    at org.flexunit.runner::FlexUnitCore/runClasses()

    at Function/http://adobe.com/AS3/2006/builtin::apply()

    at org.flexunit.runner::FlexUnitCore/run()

    at com.berog.proj_drum_machine.tests::TestMain()

FAILURES!!! Tests run: 1, 1 Failures:

Can anyone help me?

This topic has been closed for replies.

1 reply

Participating Frequently
October 24, 2011

Thanks for including a test case. I will try to replicate this morning

Mike

October 25, 2011

Hi Mike,

Were you able to reproduce the errors I was experiencing?

Thanks,

Ben

Participating Frequently
October 26, 2011

Hi Mike,

Thanks so much for looking into this.

I think I'm going to make the change and recompile.

Where should I file the bug?

-Ben


There is a flexunit category on bugs.adobe.com

Thanks,

mike