public void testAnd() throws ErroVarNaoExiste, ErroDeTipo {
    Ambiente env = new Ambiente();
    Booleano faux = new Booleano(false);
    Booleano vrai = new Booleano(true);
    Expressao aplicaAnd = new And(faux, vrai);

    try {

      faux.avalia(env);
      vrai.avalia(env);

      Booleano auxiliar = (Booleano) aplicaAnd.avalia(env);
      assertEquals(new Booleano(false).getValor(), auxiliar.getValor());
    } catch (ErroDeTipo e) {
      e.printStackTrace();
    }
  }
  public void testFatorial() throws ErroVarNaoExiste, ErroDeTipo {
    Ambiente env = new Ambiente();
    IConst int5 = new IConst(5);
    Expressao fatorial = new Fatorial(int5);

    // TESTANDO A FUNCAO RECURSIVA FATORIAL

    try {

      IConst auxiliar;
      int5.avalia(env);
      auxiliar = (IConst) fatorial.avaliaExp(env);

      assertEquals(new IConst(120).getValor(), auxiliar.getValor());

    } catch (ErroDeTipo e) {
      e.printStackTrace();
    }
  }