Регистрация  |  Вход

Помогите разобраться с Unit Test !!!

Всем привет. Недавно начал заниматься изучением salesforce, и вроде всё идёт хорошо, однако вгоняет в ступор то что не получается написать тест методы(((

Помогите пожалуйста разобраться ка написать тест методы для следующих методов Apex контроллера:

Всем привет. Недавно начал заниматься изучением salesforce, и вроде всё идёт хорошо, однако вгоняет в ступор то что не получается написать тест методы(((

Помогите пожалуйста разобраться ка написать тест методы для следующих методов Apex контроллера:

[url=https://developer.salesforce.com/page/How_to_Write_Good_Unit_Tests]Unit test[/url]

Я же написал не могу понять как правильно их писать((
то что ассерты необходимо создавать и сравнивать значения это я понимаю но хотелось бы на примере хотябы схожим с данным кодом

Я же написал не могу понять как правильно их писать(( 
то что ассерты необходимо создавать и сравнивать значения это я понимаю но хотелось бы на примере хотябы схожим с данным кодом

Все просто: вызываешь методы, проверяешь результаты их выполнения.
В общем случае тест разбивается на 3 части:
- подготовка тестовых данных
- вызов тестируемого кода
- проверка результатов

Все просто: вызываешь методы, проверяешь результаты их выполнения.
В общем случае тест разбивается на 3 части:
- подготовка тестовых данных
- вызов тестируемого кода
- проверка результатов

Вы не могли бы написать хотя бы один пример чтоб стало более понятно ) В теории я сам понимаю что необходимо сделать, а на практике меня это вгоняет в ступор) Спасибо

Вы не могли бы написать хотя бы один пример чтоб стало более понятно ) В теории я сам понимаю что необходимо сделать, а на практике меня это вгоняет в ступор) Спасибо

В твоем случае это будет выгялядеть так:
- создаешь хотя бы 1 объект типа Arr__c
- заполняешь поля inputName, inputAdded, inputRelease, inputType
- вызываешь SaveArr
- проверяешь, что у тебя количество объектов типа Arr__c увеличилось на 1
- заполняешь SelectedArrId
- вызываешь DeleteArr
- проверяешь, что у тебя количетсво уменьшилось на 1

В твоем случае это будет выгялядеть так:
- создаешь хотя бы 1 объект типа Arr__c
- заполняешь поля inputName, inputAdded, inputRelease, inputType
- вызываешь SaveArr
- проверяешь, что у тебя количество объектов типа Arr__c увеличилось на 1
- заполняешь SelectedArrId
- вызываешь DeleteArr
- проверяешь, что у тебя количетсво уменьшилось на 1

stroidoks
В теории я сам понимаю что необходимо сделать, а на практике меня это вгоняет в ступор

Что тебя вгоняет в ступор?

[quote="stroidoks"]В теории я сам понимаю что необходимо сделать, а на практике меня это вгоняет в ступор[/quote]
Что тебя вгоняет в ступор?

Приведи полный листинг контроллера?

Приведи полный листинг контроллера?

Gres
Приведи полный листинг контроллера?

Ты прям Мать Тереза :)

[quote="Gres"]Приведи полный листинг контроллера?[/quote]

Ты прям Мать Тереза :)

public class

[code]
public class 
[/code]

wilder
Ты прям Мать Тереза :)

Я решил 1 день в месяц никого не траллить)

[quote="wilder"]Ты прям Мать Тереза :)[/quote]
Я решил 1 день в месяц никого не траллить)

Gres
Приведи полный листинг контроллера?

Ты правда даже по псевдокоду не понимаешь, как написать тест?

[quote="Gres"]Приведи полный листинг контроллера?[/quote]
Ты правда даже по псевдокоду не понимаешь, как написать тест?

Главный вопрос - где ты учился?

Главный вопрос - где ты учился?

Gres
Я решил 1 день в месяц никого не траллить)

Решил почистить кАрму ? А вообще идея хорошая. пойду почитаю мантры :)

[quote="Gres"]Я решил 1 день в месяц никого не траллить)[/quote]

Решил почистить кАрму ? :) А вообще идея хорошая. пойду почитаю мантры :)

Gres
Главный вопрос - где ты учился?

Тише, тище...день еще не закончился :)

[quote="Gres"]Главный вопрос - где ты учился?[/quote]

Тише, тище...день еще не закончился :)

Ну к примеру возьмём метод сохранения по пунктам:
1. создаю новый элемент
2. добавляю в него данные
3. вызываю свой метод
4. запускаю тест на проверку добавились данные или нет

правильно я понимаю

Ну к примеру возьмём метод сохранения по пунктам:
1. создаю новый элемент
2. добавляю в него данные
3. вызываю свой метод
4. запускаю тест на проверку добавились данные или нет

правильно я понимаю

stroidoks
правильно я понимаю

Вот сейчас задам тупой вопрос....а что тебе мешает проверить это самостоятельно ? Религия, политические убеждения другое ?

[quote="stroidoks"]правильно я понимаю[/quote]

Вот сейчас задам тупой вопрос....а что тебе мешает проверить это самостоятельно ? Религия, политические убеждения другое ?

а что мешает не тролить а помочь)))
может я туплю)

а что мешает не тролить а помочь)))
может я туплю)

stroidoks
может я туплю)

Самое лучше лекарство от затупов, тяжелая работа. Собственно это мы и делаем :)

[quote="stroidoks"]может я туплю)[/quote]

Самое лучше лекарство от затупов, тяжелая работа. Собственно это мы и делаем :)

Gres так как поможешь?)

 Gres так как поможешь?)

del

del

del

del

del

del

А не должен проходить)

А не должен проходить)

Gres пожалуйста объясни где косячу

Gres пожалуйста объясни где косячу

stroidoks
Gres пожалуйста объясни где косячу

Не расскажешь, где учился?

[quote="stroidoks"]Gres пожалуйста объясни где косячу[/quote]
Не расскажешь, где учился?

Не it))

Не it))

Ну что никто не может помочь(( Объясните где косяки

Ну что никто не может помочь(( Объясните где косяки

Никто просто не хочет помогать!
Нужно самому учиться)

@isTest(SeeAllData = false)
public class ControllerArrTest {

private static final String TEST_NAME = 'name';
private static final String TEST_TYPE = 'type';

@testSetup
private void setupDate() {
Date todayDate = Date.today();
Arr__c testArr = createArr(TEST_NAME, todayDate, todayDate, TEST_TYPE);
Database.SaveResult saveResult = Database.insert(testArr, false);
System.assert(saveResult.isSuccess());
}

@isTest
private static void saveArrTest() {
Arr__c[] arrs = getArrs();
System.assertEquals(1, arrs.size());

Test.startTest();

ControllerArr arrController = new ControllerArr();
arrController.inputName = TEST_NAME + '1';
arrController.inputAdded = Date.today();
arrController.inputRelease = Date.today();
arrController.inputType = TEST_TYPE + '1';

System.assertEquals(1, arrController.arrList);

arrController.SaveArr();

System.assertEquals(2, arrController.arrList);

Test.stopTest();

arrs = getArrs();
System.assertEquals(2, arrs.size());
}

@isTest
private static void deleteArrTest() {
Arr__c[] arrs = getArrs();
System.assertEquals(1, arrs.size());

Test.startTest();

ControllerArr arrController = new ControllerArr();
arrController.selectedArrId = arrs[0].Id;

System.assertEquals(1, arrController.arrList);

arrController.DeleteArr();

System.assertEquals(0, arrController.arrList);

Test.stopTest();

arrs = getArrs();
System.assertEquals(0, arrs.size());
}

private Arr__c createArr(String name, Date added, Date released, String type) {
Arr__c testArr = new Arr__c();
testArr.Name = name;
testArr.Added__c = added;
testArr.Release__c = released;
testArr.Type__c = type;
return testArr;
}

private Arr__c[] getArrs() {
return [
SELECT Id, Name, Added__c, Release__c, Type__c
FROM Arr__c
];
}
}

Никто просто не хочет помогать!
Нужно самому учиться)
[code]
@isTest(SeeAllData = false)
public class ControllerArrTest {

	private static final String TEST_NAME = 'name';
	private static final String TEST_TYPE = 'type';

	@testSetup
	private void setupDate() {
		Date todayDate = Date.today();
		Arr__c testArr = createArr(TEST_NAME, todayDate, todayDate, TEST_TYPE);
		Database.SaveResult saveResult = Database.insert(testArr, false);
		System.assert(saveResult.isSuccess());
	}

	@isTest
	private static void saveArrTest() {
		Arr__c[] arrs = getArrs();
		System.assertEquals(1, arrs.size());

		Test.startTest();

		ControllerArr arrController = new ControllerArr();
		arrController.inputName = TEST_NAME + '1';
		arrController.inputAdded = Date.today();
		arrController.inputRelease = Date.today();
		arrController.inputType = TEST_TYPE + '1';

		System.assertEquals(1, arrController.arrList);

		arrController.SaveArr();

		System.assertEquals(2, arrController.arrList);

		Test.stopTest();

		arrs = getArrs();
		System.assertEquals(2, arrs.size());
	}

	@isTest
	private static void deleteArrTest() {
		Arr__c[] arrs = getArrs();
		System.assertEquals(1, arrs.size());

		Test.startTest();

		ControllerArr arrController = new ControllerArr();
		arrController.selectedArrId = arrs[0].Id;

		System.assertEquals(1, arrController.arrList);

		arrController.DeleteArr();

		System.assertEquals(0, arrController.arrList);

		Test.stopTest();

		arrs = getArrs();
		System.assertEquals(0, arrs.size());
	}

	private Arr__c createArr(String name, Date added, Date released, String type) {
		Arr__c testArr = new Arr__c();
		testArr.Name = name;
		testArr.Added__c = added;
		testArr.Release__c = released;
		testArr.Type__c = type;
		return testArr;
	}

	private Arr__c[] getArrs() {
		return [
			SELECT Id, Name, Added__c, Release__c, Type__c
			FROM Arr__c
		];
	}
}
[/code]

Спасибо большое буду разбираться

Спасибо большое буду разбираться

stroidoks
Не it))

а где в не IT?

[quote="stroidoks"]Не it))[/quote]
а где в не IT?

технический вуз)) просто я во всём разобрался, а тут хз. чуть позже могу скинуть свой проект на обозрение если будет желание

технический вуз)) просто я во всём разобрался, а тут хз. чуть позже могу скинуть свой проект на обозрение если будет желание

stroidoks
технический вуз)) просто я во всём разобрался, а тут хз. чуть позже могу скинуть свой проект на обозрение если будет желание

Не хочешь выдавать свой вуз?

[quote="stroidoks"]технический вуз)) просто я во всём разобрался, а тут хз. чуть позже могу скинуть свой проект на обозрение если будет желание[/quote]
Не хочешь выдавать свой вуз?

stroidoks
чуть позже могу скинуть свой проект на обозрение если будет желание

Скинь

[quote="stroidoks"]чуть позже могу скинуть свой проект на обозрение если будет желание[/quote]
Скинь

ок. завтра после завтра скину))) вуз не говорю потому что тупил на тестах, хотя сейчас смотрю что ты скинул и понимаю что ничего сложного не было.А вуз не говорю потому что он в принципе роли не играет

ок. завтра после завтра скину))) вуз не говорю потому что тупил на тестах, хотя сейчас смотрю что ты скинул и понимаю что ничего сложного не было.А вуз не говорю потому что он в принципе роли не играет

stroidoks
хотя сейчас смотрю что ты скинул и понимаю что ничего сложного не было

Тут вообще ничего сложного нет

[quote="stroidoks"]хотя сейчас смотрю что ты скинул и понимаю что ничего сложного не было[/quote]
Тут вообще ничего сложного нет

stroidoks
А вуз не говорю потому что он в принципе роли не играет

Как не играет, там, как минимум, тебя должны были научить гуглить!
Хотя я ничего не знаю про вузы РБ.

[quote="stroidoks"]А вуз не говорю потому что он в принципе роли не играет[/quote]
Как не играет, там, как минимум, тебя должны были научить гуглить!
Хотя я ничего не знаю про вузы РБ.

гуглю я нормально))) просто сейчас смотрю на тест и думаю насколько я тупил)))

гуглю я нормально))) просто сейчас смотрю на тест и думаю насколько я тупил)))

stroidoks
гуглю я нормально))) просто сейчас смотрю на тест и думаю насколько я тупил)))

Ты же утверждал, что твой тест проходит

[quote="stroidoks"]гуглю я нормально))) просто сейчас смотрю на тест и думаю насколько я тупил)))[/quote]
Ты же утверждал, что твой тест проходит

проходил))

проходил))

привет stroidoks, тебе сказочно повезло, что у Gresa сегодня хорошее настроение и он тебе сходу помог...

редко кому так везет

думаю, самое время сказать ему "спасибо"

привет stroidoks, тебе сказочно повезло, что у Gresa сегодня хорошее настроение и он тебе сходу помог...

редко кому так везет :)

думаю, самое время сказать ему "спасибо"

Я уже говорил))) Большое спасибо)))

Я уже говорил))) Большое спасибо)))