mockolate icon indicating copy to clipboard operation
mockolate copied to clipboard

Partial mocks throw error when an unstubbed getter returning Vector is called

Open ericklaus-wf opened this issue 12 years ago • 0 comments

Only unstubbed properties exhibit this bug. Methods and stubbed properties can be retrieved as expected.

The failing unit test will throw "Error #1065: Variable __AS3__vec::Vector.<String> is not defined."

public class PartialMockVectorError
{
    [Rule]
    public var mocks:MockolateRule = new MockolateRule();

    [Mock(type="partial")]
    public var vectorWrapper:ClassWithVector;

    [Test]
    public function testShouldGetVector():void
    {
        //fails
        vectorWrapper.someList;
    }

    [Test]
    public function testStubbedPropertyShouldGetVector():void
    {
        //passes
        var vector:Vector.<String> = new Vector.<String>();
        stub(vectorWrapper).getter("someList").returns(vector);
        assertTrue(vectorWrapper.someList === vector);
    }

    [Test]
    public function testMethodShouldGetVector():void
    {
        //passes
        vectorWrapper.retrieveSomeList();
    }
}

public class ClassWithVector
{

    private var _someList:Vector.<String>;

    public function ClassWithVector():void
    {
        _someList = new Vector.<String>();
    }

    public function get someList():Vector.<String>
    {
        return _someList;
    }

    public function set someList(value:Vector.<String>):void
    {
        _someList = value;
    }

    public function retrieveSomeList():Vector.<String>
    {
        return _someList;
    }
}

ericklaus-wf avatar Jul 01 '13 20:07 ericklaus-wf