Cómo verificar los cambios de campo de contrato en una prueba de trufa

mi contrato es

contract SimpleContract {
    uint storedData;
    function set(uint x) public { storedData = x; }
    function get() public returns (uint) { return storedData; }
}

Esta prueba no funciona:

var SimpleContract = artifacts.require("SimpleContract");

contract('SimpleContract', function(accounts) {
  let contract;
  let owner;
  let web3Contract;

  before(async () => {
    contract = await SimpleContract.deployed();
    web3Contract = web3.eth.contract(contract.abi).at(contract.address);
    owner = web3Contract._eth.coinbase;        
  });

  it("test", async function() {    
    await contract.set.call(10);    
    let result = await contract.get.call();
    assert.equal(result.toNumber(), 10, "updates the field");
  });  
});

Me estoy poniendo

AssertionError: fail: expected 0 to equal 10

¿Alguna idea?

Usevally call () es para obtener el valor de la variable de estado. No cambiará la variable de estado. Si desea cambiar el estado. Utilice contract.set.sendTransaction(args...,);
Genial @Jitendra, esto resuelve el problema

Respuestas (1)

@Jitendra Kumar. La respuesta de Balla es la correcta. Yo estaba llamando set.call(10)en lugar de set.sendTransaction(10).