title: Is it a good practice to define expectation in dataProvider
body: <p>quick example of dataProvider: </p>
  
  <pre><code>return [
     ['180d-1pc', '6m-1pc'],
  ]
  </code></pre>
  
  <p>and test: </p>
  
  <pre><code>public function  test_convert($title, $expected)
  {
      $uut = new Converter();
      $this-&gt;assertEquals($expected, $uut-&gt;convertDayTitle($title));
  }
  </code></pre>
  
  <p>(simply put: test if we convert 180d(days) to 6m(months))
  as you can see - in data provider there are input data defined and also an expected output. </p>
  
  <p>This works fine in many cases, but I keep having this feeling that maybe it's not the best idea. So I'm wondering if could be considered bad practice. If so - when I will see it was a bad idea to do it?</p>
  
  <p>One example is, when you would like to use the same dataProvider in two tests - should you define two expected values and use one of them? </p>
  
  <p>Quick example (I just made that up, so don't pay attention that I make product object just from title ;)): </p>
  
  <pre><code>public function test_gets_discount_when_licence_period_longer_than_1year($title, $expectedTitle, $expectedDiscount) {
   $prod = new Product($title);
   $this-&gt;assertEquals($expectedDiscount, $product-&gt;hasDiscount();
  }
  </code></pre>
  
  <p>How to make this more elegant?</p>