Loading...

Във форума е въведено ограничение, което позволява на потребителите единствено да разглеждат публикуваните въпроси.

sevdalin avatar sevdalin 38 Точки

[C# OOP Advanced] Unit Testing - Problem 5. Integration Tests** - не разбирам условието?

Не мога да разбера условието на задачата и по точно, как точно трябва да са построени тези категории. Направо слагам условието тук, тъй като не е много дълго:

Problem 5.	**Integration Tests
When you create tests for a program, you should decouple a method which you test, so you could test a single problem. If a method is coupled to another one or it is doing more job that it is supposed to do, you could not clearly tell, which part is buggy. So when you create test, to determine which exactly is the problem, you separate each operation of the method and test each of them, to be sure, everything is working correctly. But there is another instance of the Unit Testing - Integration testing. When you do integration testing, you are testing the relationships of the models and the functions. 
 You are a web developer and your boss assigns you a task to implement the backend logic of the following problem.
You have a site with the following two models:
Category has a:
•	Name.
•	Set of Users.
•	(optional) Set of Categories (children)
User has a:
•	Name.
•	Set of Categories
Functions to implement:
•	Add Categories
•	Remove Category / Categories
•	Assign a child Category to a single Category. 
•	Assign a User to specific Category.
Task
Create tests for all the classes. Test, do they work correctly together. Keep in mind, you should test the border cases which are very interesting in this domain.
Hint
In case you have a child Category and you remove its parent Category, if it has any Users, they must be reassigned to the child Category. If you try to move a child Category from its parent to another, don’t forget to remove the relationship from the first one. (e.g. When you move a Category from one parent to another, don’t copy the child to the both parents. Instead, create new child with all characteristics of the previous one and assign it to the new parent)

Не успях да намеря отворена тема във форум, и се надявам някой да го разясни, какво точно трябва да създадем като логика.

 

Тагове:
1
C# OOP Advanced 22/07/2017 20:16:47
DJBuro avatar DJBuro Trainer 105 Точки

Идеята е да изградиш структурно въпросния казус. Да го изместваш, като за целта ще е нужно да използваш Mocking. Най-добре да изгледаш някое старо видео по този въпрос. Въпроса е в последствие да промениш подхода и отново да решиш казуса :) Това както ще видиш ще доведе до пълно счупване на тестовете. 

1
sevdalin avatar sevdalin 38 Точки

Не мога да схвана цялата картинка така само на думи определено.

Старо видео ама от къде... аз не успях да намеря, ти виждал ли си?

Сподели ако си.... иначе благодаря за отговора :)

0
warglaivee avatar warglaivee 59 Точки

Целта на задачата е интересна(да ни покаже как тестовете, ще се счупят), но да го бяха удължили малко това условие, някоя насока как да подредиме нещата, че по-бавните като мен не го сгряват. :D

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.