Архитектура среды тестирования на основе моделей


Пример построения теста - часть 4


if (possibleTransfer(sum)) Coverage.addDescriptor("Possible transfer"); else Coverage.addDescriptor("Too big sum");

if (permission) Coverage.addDescriptor("Permitted"); else Coverage.addDescriptor("Not permitted");

if(balance == 0) Coverage.addDescriptor("Zero balance"); else if(balance > 0) Coverage.addDescriptor("Positive balance"); else Coverage.addDescriptor("Negative balance");

if(sum == 0) Coverage.addDescriptor("Zero sum"); else if(sum > 0) Coverage.addDescriptor("Positive sum"); else Coverage.addDescriptor("Negative sum"); } }

Модель теста для счета выглядит следующим образом. @Test public class AccountTest {

Account account; boolean permission = true;

@Mock Validator validatorStub;

public AccountTest() {

MockitoAnnotations.initMocks(this); Mockito.when(validatorStub.validateTransfer(Mockito.<Account>any()

, Mockito.anyInt())).thenReturn(true); }

public void setAccount(Account account) { this.account = account; account.setValidator(validatorStub); }

public Validator getPermitterStub() { return validatorStub; }

@State public int getBalance() { return account.getBalance(); }

@State public boolean getPermission() { return permission; }

@Test @DataProvider(name = "sumArray")

@Guard(name = "bound") public void testDeposit(int x) {

account.transfer(x); }

@Test @DataProvider(name = "sumIterator") public void testWithdraw(int x) {

account.transfer(-x); }

@Test @Guard(name = "bound") public void testIncrement() {

account.transfer(1); }

@Test public void switchPermission() {

permission = !permission; Mockito.when(validatorStub.validateTransfer(Mockito.<Account>any()

, Mockito.anyInt())).thenReturn(permission); }

public boolean bound() { return getBalance() < 5 !permission; }




Начало  Назад  Вперед



Книжный магазин