### Question:
Expression { @Override public String toString() { return original; } private  Expression(String expression, Class<T> expectedType); static Expression<T> valueOf(String expression, Class<T> expectedType); T eval(final Bindings bindings); T eval(); void set(Bindings bindings, Object value); @Override String toString();  }### Answer:
@Test(dataProvider = "expressions") public void toStringTest(final String value) throws ExpressionException { final Expression<String> expA = Expression.valueOf(value, String.class); final Expression<String> expB = Expression.valueOf(expA.toString(), String.class); assertThat(expA.toString()).isEqualTo(expB.toString()); }