title: Web3 + Solidity: Passing in arguments to a contract's constructor
body: <p>I am attempting to write some unit tests for a smart contract I'm writing, but am having difficulty when figuring out how to pass in arguments to my contract's constructor upon creation. Below is my code:</p>
  
  <pre><code>const assert = require('assert');
  const ganache = require('ganache-cli');
  const provider = ganache.provider();
  const Web3 = require('web3');
  const web3 = new Web3(provider);
  const { interface, bytecode } = require('../ethereum/compile');
  
  let token;
  let accounts;
  
  beforeEach(async () =&gt; {
    accounts = await web3.eth.getAccounts();
    token = await new web3.eth.Contract(JSON.parse(interface))
      .deploy({ data: bytecode })
      .send({ from: accounts[0], gas: '1000000' });
    token.setProvider(provider);
  });
  
  describe('Token Contract', () =&gt; { ... });
  </code></pre>
  
  <p>Based on this set up, how can I pass in arguments to the contract? I got this far by following a solidity course, but the contract in the lessons did not have any options for it's constructor, so it never covered where they should go. Thank you for your help!</p>