pragma solidity ^0.4.24; //import "./ThrowProxy.sol"; import "./SimpleContract.sol"; contract TestSimpleContract { uint256 public values = 15; ThrowProxy proxy; SimpleContract simple = new SimpleContract(); function returnValue() public returns (uint256) { return values; } function testThrowProxy() public { proxy = new ThrowProxy(address(simple)); SimpleContract(address(proxy)).returnValue(); } } // Proxy contract for testing throws contract ThrowProxy { address public target; bytes data; constructor(address _target) public { target = _target; } //prime the data using the fallback function. function() public { data = msg.data; } function execute() public returns (bool){ return target.call(data); } }