Spying a DataflowVariable

Previous Topic Next Topic
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view

Spying a DataflowVariable

Paolo Di Tommaso
Hi all, 

I've having a problem testing a DataflowVariable with a Spock test. 

Consider the following test case: 

    class Lazy {

        def bar(final x) {
            return x

        def foo() {
            def closure = { bar('Hello') }
            new LazyDataflowVariable(closure) .getVal()

I want to check that the `bar` method is invoked exactly one time by the LazyDataflowVariable when the method `foo` is called. The test I'm using is the following: 

    class LazyTest extends Spefication {

        def 'should invoke bar method' () {
            def lazy = Spy(Lazy)
            def result = lazy.foo()
            1 * lazy.bar('Hello') >> 'Hello'
            result == 'Hello'

However what happens is that is just hangs, because it seems that the dataflow variable never invokes the initialisation closure. 

Any idea what is wrong? or any workaround ?