Софтуерно Инженерство
Loading...
+ Нов въпрос
ALEXXX avatar ALEXXX 4 Точки

[Exam Preparation] Проблем с integration tests и с превода на LINQ към Entities

Започнах да решаам лаба придържах се кум условието, но какво ли не правих тестовете не минаат и не минаат.

Това е проекта https://github.com/alexxx6/Web-Services-And-Cloud/tree/master/Online-Shop

 

Другия ми проблем е когато използвам статичен метод за създаване на  ViewModel в LINQ ми казва, че не разпознава този метод и не може даго преведе към Entities. Не мога да разбера какъв му е проблема след като е показвано в лекциите, а и аз съм го правел  в предходни домашни. Опитах през пропърти, но и то не проработи.

Това е проекта https://github.com/alexxx6/Web-Services-And-Cloud/tree/master/BugTracker

0
C# Web Services & Cloud 06/09/2015 20:01:19
a_rusenov avatar a_rusenov 1103 Точки

За тестовете никой не може да ти каже - дебъгни си ги и виж защо гърмят.

Относно Create метода във view моделите - погледни първия лаб за Online Shop и обърни внимание там как го правим. Това не е обикновен метод, а пропърти, което връща Expression<Func<Ad, AdViewModel>>, където Ad ти е entity-то, а AdViewModel е обектът, в който проектираш данните. Важно е връщаният тип да е Expression, иначе EF няма да може да преведе проекцията към SQL.

1
06/09/2015 22:37:53
ALEXXX avatar ALEXXX 4 Точки

Логин теста ми връща респонс със статус код 404 NodFound без никакъв месидж. Написах един тест за метода GetAds който е без аутинтикация и ми върна InternalServerError.

 

Еxpression пропъртито също не работи както съм спомена във въпроса, но опитах отново и пак не сработи.

Грешката която ми хвърля е: "The LINQ expression node type 'Lambda' is not supported in LINQ to Entities"

0
09/09/2015 16:14:54
a_rusenov avatar a_rusenov 1103 Точки

Create expression-ът трябва да се подаде по следния начин:

.Select(BugViewModel.Create);

Предполагам слагаш ламбда (=>) и се получава двойно => и затова гърми.

Относно дадените тестовете - те ли не ти минават? Ако твой тест ти връща InternalServerError то значи нещо в твоя код е хвърлило ексепшън и той не е бил обработен. Сложи breakpoint в началото на екшъна, който тестваш, и виж къде с какво гърми.

1
08/09/2015 13:52:14
ALEXXX avatar ALEXXX 4 Точки

Ок прав беше за ламбдата.

 

Написал по точно преписал съм само теста за login и PostAdWithInvalidAdTypeShouldReturn400BadRequest които бяха дадени в заданието те бяха почти написани имаха само 1-2 todo-та за assert-те които дописах. Единствено аз  написах тест за взимне на всички обяви и другото което направих е, че пренаписа нещата да се постват анонимнм обяви, но и двата теста гръмнаха с InternalServerError.

Дебъгвам откакто възникна лроблема, но когато сложа breakpoint на екшъна който тествам и почна да дебъгвам то не спира там, а спира чак на асърта който гърми

ПС: В postman всичко рабити.

0
08/09/2015 21:08:37