    @Test
    public void probeByteCodeDebug() {

        PrintStream sysOut = mock(PrintStream.class);

        System.out.println("Sysout hijack!");
        PrintStream oldPrintStream = System.out;

        try {
            System.setOut(sysOut);

            InvokeInstruction ins = mock(InvokeInstruction.class);
            ConstantPoolGen cpg = mock(ConstantPoolGen.class);

            when(ins.getClassName(Matchers.<ConstantPoolGen>any())).thenReturn("ClassTest");
            when(ins.getMethodName(Matchers.<ConstantPoolGen>any())).thenReturn("method");
            when(ins.getSignature(Matchers.<ConstantPoolGen>any())).thenReturn("(Lsignature)Lblah");

            //Print invocation
            ByteCode.printOpCode(ins, cpg);

            verify(sysOut, atLeastOnce()).println(contains("ClassTest.method"));
        } finally {
            System.setOut(oldPrintStream);
            System.out.println("Sysout is back!");
        }

    }