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.test One (1,1,,1,1,) .
TypeError: Error #1009: Cannot access a property or method of a null object reference.
at flex.lang.reflect::Constructor/newInstanceApply()[E:\hudson\jobs\FlexUnit4-Flex4.1\worksp ace\FlexUnit4\src\flex\lang\reflect\Constructor.as:253]
at TestClassRunnerForParameters/createTest()[E:\hudson\jobs\FlexUnit4-Flex4.1\workspace\Flex Unit4\src\org\flexunit\runners\Parameterized.as:455]
at org.flexunit.runners::BlockFlexUnit4ClassRunner/methodBlock()[E:\hudson\jobs\FlexUnit4-Fl ex4.1\workspace\FlexUnit4\src\org\flexunit\runners\BlockFlexUnit4ClassRunner.as:314]
at org.flexunit.runners::BlockFlexUnit4ClassRunner/runChild()[E:\hudson\jobs\FlexUnit4-Flex4 .1\workspace\FlexUnit4\src\org\flexunit\runners\BlockFlexUnit4ClassRunner.as:152]
at org.flexunit.internals.runners::ChildRunnerSequencer/executeStep()[E:\hudson\jobs\FlexUni t4-Flex4.1\workspace\FlexUnit4\src\org\flexunit\internals\runners\ChildRunnerSequencer.as: 82]
at org.flexunit.internals.runners.statements::StatementSequencer/handleChildExecuteComplete( )[E:\hudson\jobs\FlexUnit4-Flex4.1\workspace\FlexUnit4\src\org\flexunit\internals\runners\ statements\StatementSequencer.as:141]
at org.flexunit.internals.runners.statements::StatementSequencer/evaluate()[E:\hudson\jobs\F lexUnit4-Flex4.1\workspace\FlexUnit4\src\org\flexunit\internals\runners\statements\Stateme ntSequencer.as:109]
at org.flexunit.runners::ParentRunner/run()[E:\hudson\jobs\FlexUnit4-Flex4.1\workspace\FlexU nit4\src\org\flexunit\runners\ParentRunner.as:483]
at org.flexunit.runners::Parameterized/runChild()[E:\hudson\jobs\FlexUnit4-Flex4.1\workspace \FlexUnit4\src\org\flexunit\runners\Parameterized.as:273]
at org.flexunit.internals.runners::ChildRunnerSequencer/executeStep()[E:\hudson\jobs\FlexUni t4-Flex4.1\workspace\FlexUnit4\src\org\flexunit\internals\runners\ChildRunnerSequencer.as: 82]
at org.flexunit.internals.runners.statements::StatementSequencer/handleChildExecuteComplete( )[E:\hudson\jobs\FlexUnit4-Flex4.1\workspace\FlexUnit4\src\org\flexunit\internals\runners\ statements\StatementSequencer.as:141]
at org.flexunit.internals.runners.statements::StatementSequencer/evaluate()[E:\hudson\jobs\F lexUnit4-Flex4.1\workspace\FlexUnit4\src\org\flexunit\internals\runners\statements\Stateme ntSequencer.as:109]
at org.flexunit.runners::ParentRunner/run()[E:\hudson\jobs\FlexUnit4-Flex4.1\workspace\FlexU nit4\src\org\flexunit\runners\ParentRunner.as:483]
at org.flexunit.runners::Suite/runChild()[E:\hudson\jobs\FlexUnit4-Flex4.1\workspace\FlexUni t4\src\org\flexunit\runners\Suite.as:151]
at org.flexunit.internals.runners::ChildRunnerSequencer/executeStep()[E:\hudson\jobs\FlexUni t4-Flex4.1\workspace\FlexUnit4\src\org\flexunit\internals\runners\ChildRunnerSequencer.as: 82]
at org.flexunit.internals.runners.statements::StatementSequencer/handleChildExecuteComplete( )[E:\hudson\jobs\FlexUnit4-Flex4.1\workspace\FlexUnit4\src\org\flexunit\internals\runners\ statements\StatementSequencer.as:141]
at org.flexunit.internals.runners.statements::StatementSequencer/evaluate()[E:\hudson\jobs\F lexUnit4-Flex4.1\workspace\FlexUnit4\src\org\flexunit\internals\runners\statements\Stateme ntSequencer.as:109]
at org.flexunit.runners::ParentRunner/run()[E:\hudson\jobs\FlexUnit4-Flex4.1\workspace\FlexU nit4\src\org\flexunit\runners\ParentRunner.as:483]
at org.flexunit.runners::Suite/runChild()[E:\hudson\jobs\FlexUnit4-Flex4.1\workspace\FlexUni t4\src\org\flexunit\runners\Suite.as:151]
at org.flexunit.internals.runners::ChildRunnerSequencer/executeStep()[E:\hudson\jobs\FlexUni t4-Flex4.1\workspace\FlexUnit4\src\org\flexunit\internals\runners\ChildRunnerSequencer.as: 82]
at org.flexunit.internals.runners.statements::StatementSequencer/handleChildExecuteComplete( )[E:\hudson\jobs\FlexUnit4-Flex4.1\workspace\FlexUnit4\src\org\flexunit\internals\runners\ statements\StatementSequencer.as:141]
at org.flexunit.internals.runners.statements::StatementSequencer/evaluate()[E:\hudson\jobs\F lexUnit4-Flex4.1\workspace\FlexUnit4\src\org\flexunit\internals\runners\statements\Stateme ntSequencer.as:109]
at org.flexunit.runners::ParentRunner/run()[E:\hudson\jobs\FlexUnit4-Flex4.1\workspace\FlexU nit4\src\org\flexunit\runners\ParentRunner.as:483]
at org.flexunit.runner::FlexUnitCore/beginRunnerExecution()[E:\hudson\jobs\FlexUnit4-Flex4.1 \workspace\FlexUnit4\src\org\flexunit\runner\FlexUnitCore.as:348]
at org.flexunit.runner::FlexUnitCore/runRunner()[E:\hudson\jobs\FlexUnit4-Flex4.1\workspace\ FlexUnit4\src\org\flexunit\runner\FlexUnitCore.as:307]
at org.flexunit.runner::FlexUnitCore/runRequest()[E:\hudson\jobs\FlexUnit4-Flex4.1\workspace \FlexUnit4\src\org\flexunit\runner\FlexUnitCore.as:283]
at org.flexunit.runner::FlexUnitCore/runClasses()[E:\hudson\jobs\FlexUnit4-Flex4.1\workspace \FlexUnit4\src\org\flexunit\runner\FlexUnitCore.as:269]
at Function/http://adobe.com/AS3/2006/builtin::apply()
at org.flexunit.runner::FlexUnitCore/run()[E:\hudson\jobs\FlexUnit4-Flex4.1\workspace\FlexUn it4\src\org\flexunit\runner\FlexUnitCore.as:245]
at com.berog.proj_drum_machine.tests::TestMain()[E:\Actionscript\projects\DrumMachine\src\co m\berog\proj_drum_machine\tests\TestMain.as:18]
com.berog.proj_drum_machine.tests.matrix_test_suite.test_cases::MatrixConstructorTest.test One (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.tes tOne (1,1,,1,1,) TypeError: Error #1009: Cannot access a property or method of a null object reference.
at flex.lang.reflect::Constructor/newInstanceApply()[E:\hudson\jobs\FlexUnit4-Flex4.1\worksp ace\FlexUnit4\src\flex\lang\reflect\Constructor.as:253]
at TestClassRunnerForParameters/createTest()[E:\hudson\jobs\FlexUnit4-Flex4.1\workspace\Flex Unit4\src\org\flexunit\runners\Parameterized.as:455]
at org.flexunit.runners::BlockFlexUnit4ClassRunner/methodBlock()[E:\hudson\jobs\FlexUnit4-Fl ex4.1\workspace\FlexUnit4\src\org\flexunit\runners\BlockFlexUnit4ClassRunner.as:314]
at org.flexunit.runners::BlockFlexUnit4ClassRunner/runChild()[E:\hudson\jobs\FlexUnit4-Flex4 .1\workspace\FlexUnit4\src\org\flexunit\runners\BlockFlexUnit4ClassRunner.as:152]
at org.flexunit.internals.runners::ChildRunnerSequencer/executeStep()[E:\hudson\jobs\FlexUni t4-Flex4.1\workspace\FlexUnit4\src\org\flexunit\internals\runners\ChildRunnerSequencer.as: 82]
at org.flexunit.internals.runners.statements::StatementSequencer/handleChildExecuteComplete( )[E:\hudson\jobs\FlexUnit4-Flex4.1\workspace\FlexUnit4\src\org\flexunit\internals\runners\ statements\StatementSequencer.as:141]
at org.flexunit.internals.runners.statements::StatementSequencer/evaluate()[E:\hudson\jobs\F lexUnit4-Flex4.1\workspace\FlexUnit4\src\org\flexunit\internals\runners\statements\Stateme ntSequencer.as:109]
at org.flexunit.runners::ParentRunner/run()[E:\hudson\jobs\FlexUnit4-Flex4.1\workspace\FlexU nit4\src\org\flexunit\runners\ParentRunner.as:483]
at org.flexunit.runners::Parameterized/runChild()[E:\hudson\jobs\FlexUnit4-Flex4.1\workspace \FlexUnit4\src\org\flexunit\runners\Parameterized.as:273]
at org.flexunit.internals.runners::ChildRunnerSequencer/executeStep()[E:\hudson\jobs\FlexUni t4-Flex4.1\workspace\FlexUnit4\src\org\flexunit\internals\runners\ChildRunnerSequencer.as: 82]
at org.flexunit.internals.runners.statements::StatementSequencer/handleChildExecuteComplete( )[E:\hudson\jobs\FlexUnit4-Flex4.1\workspace\FlexUnit4\src\org\flexunit\internals\runners\ statements\StatementSequencer.as:141]
at org.flexunit.internals.runners.statements::StatementSequencer/evaluate()[E:\hudson\jobs\F lexUnit4-Flex4.1\workspace\FlexUnit4\src\org\flexunit\internals\runners\statements\Stateme ntSequencer.as:109]
at org.flexunit.runners::ParentRunner/run()[E:\hudson\jobs\FlexUnit4-Flex4.1\workspace\FlexU nit4\src\org\flexunit\runners\ParentRunner.as:483]
at org.flexunit.runners::Suite/runChild()[E:\hudson\jobs\FlexUnit4-Flex4.1\workspace\FlexUni t4\src\org\flexunit\runners\Suite.as:151]
at org.flexunit.internals.runners::ChildRunnerSequencer/executeStep()[E:\hudson\jobs\FlexUni t4-Flex4.1\workspace\FlexUnit4\src\org\flexunit\internals\runners\ChildRunnerSequencer.as: 82]
at org.flexunit.internals.runners.statements::StatementSequencer/handleChildExecuteComplete( )[E:\hudson\jobs\FlexUnit4-Flex4.1\workspace\FlexUnit4\src\org\flexunit\internals\runners\ statements\StatementSequencer.as:141]
at org.flexunit.internals.runners.statements::StatementSequencer/evaluate()[E:\hudson\jobs\F lexUnit4-Flex4.1\workspace\FlexUnit4\src\org\flexunit\internals\runners\statements\Stateme ntSequencer.as:109]
at org.flexunit.runners::ParentRunner/run()[E:\hudson\jobs\FlexUnit4-Flex4.1\workspace\FlexU nit4\src\org\flexunit\runners\ParentRunner.as:483]
at org.flexunit.runners::Suite/runChild()[E:\hudson\jobs\FlexUnit4-Flex4.1\workspace\FlexUni t4\src\org\flexunit\runners\Suite.as:151]
at org.flexunit.internals.runners::ChildRunnerSequencer/executeStep()[E:\hudson\jobs\FlexUni t4-Flex4.1\workspace\FlexUnit4\src\org\flexunit\internals\runners\ChildRunnerSequencer.as: 82]
at org.flexunit.internals.runners.statements::StatementSequencer/handleChildExecuteComplete( )[E:\hudson\jobs\FlexUnit4-Flex4.1\workspace\FlexUnit4\src\org\flexunit\internals\runners\ statements\StatementSequencer.as:141]
at org.flexunit.internals.runners.statements::StatementSequencer/evaluate()[E:\hudson\jobs\F lexUnit4-Flex4.1\workspace\FlexUnit4\src\org\flexunit\internals\runners\statements\Stateme ntSequencer.as:109]
at org.flexunit.runners::ParentRunner/run()[E:\hudson\jobs\FlexUnit4-Flex4.1\workspace\FlexU nit4\src\org\flexunit\runners\ParentRunner.as:483]
at org.flexunit.runner::FlexUnitCore/beginRunnerExecution()[E:\hudson\jobs\FlexUnit4-Flex4.1 \workspace\FlexUnit4\src\org\flexunit\runner\FlexUnitCore.as:348]
at org.flexunit.runner::FlexUnitCore/runRunner()[E:\hudson\jobs\FlexUnit4-Flex4.1\workspace\ FlexUnit4\src\org\flexunit\runner\FlexUnitCore.as:307]
at org.flexunit.runner::FlexUnitCore/runRequest()[E:\hudson\jobs\FlexUnit4-Flex4.1\workspace \FlexUnit4\src\org\flexunit\runner\FlexUnitCore.as:283]
at org.flexunit.runner::FlexUnitCore/runClasses()[E:\hudson\jobs\FlexUnit4-Flex4.1\workspace \FlexUnit4\src\org\flexunit\runner\FlexUnitCore.as:269]
at Function/http://adobe.com/AS3/2006/builtin::apply()
at org.flexunit.runner::FlexUnitCore/run()[E:\hudson\jobs\FlexUnit4-Flex4.1\workspace\FlexUn it4\src\org\flexunit\runner\FlexUnitCore.as:245]
at com.berog.proj_drum_machine.tests::TestMain()[E:\Actionscript\projects\DrumMachine\src\co m\berog\proj_drum_machine\tests\TestMain.as:18]
FAILURES!!! Tests run: 1, 1 Failures:
Can anyone help me?