Как издеваться над пустым методом без аргументов? - PullRequest
0 голосов
/ 27 ноября 2018

Например:

Class A{

    string s = null;
    public void method(){

        s="Sample String";

    }
}

У меня есть метод void с похожим сценарием.Как я могу проверить такой метод void?

1 Ответ

0 голосов
/ 27 ноября 2018

С помощью методов void вы должны проверить взаимодействие с зависимыми объектами в методе void.Я думаю, что метод void без аргументов редко полезен для тестирования (но если у вас есть действительный вариант использования, пожалуйста, добавьте его в свой вопрос).Я предоставил вам простой пример для метода с аргументом, но void в качестве типа возвращаемого значения:

public class A {

  private DatabaseService db;
  private PaymentService payment;

  // constructor

  public void doFoo() {
    if(n < 2) {
      db.updateDatabase();
    } else {
      payment.payBill();
    }
  }

}

И модульный тест для этого может выглядеть следующим образом

@RunWith(MockitoJUnitRunner.class)
public class ATest {

   @Mock
   DatabaseService db;

   @Mock
   PaymentService payment;

   @Test
   public void testDoFooWithNGreaterTwo() {
     A cut = new A(db, payment); // cut -> class under test
     cut.doFoo(3);
     verify(payment).payBill(); // verify that payment was called
   }

   @Test
   public void testDoFooWithNLessThanTwo() {
     A cut = new A(db, payment); // cut -> class under test
     cut.doFoo(1);
     verify(db).updateDatabase(); // verify that db was called
   }

}
...