Loading...
a_rusenov avatar a_rusenov 1103 Точки

Здравейте,

Извиняваме се за закъснението, видеото е вече качено. Срокът за предаване на домашно е удължен до неделя 6 септември включително.

Допълнително сме качили лаб по темата за mocking. Във вторник ще пуснем и лаб за integration testing.

1
a.angelov avatar a.angelov 1316 Точки

Благодаря yes smiley

Да си използвам темата и да попитам за един проблем, за който се чудя каква може да е причината:

Става дума за mocking лаба - на т.1 Get All Ads, подточка 1 там където се създава adsController-а:

var adsController = new AdsController(mockContext.Object);

Дава ми грешка, че конструктора на AdsController-а е с 0 параметри, а бил извикан с 1 параметър...

BaseApiController-а ми, който се наследява съответно от AdsController-a, изглежда така:

public class BaseApiController : ApiController
    {
        public BaseApiController()
            : this(new OnlineShopData(new OnlineShopContext()))
        {
        }

        public BaseApiController(IOnlineShopData data)
        {
            this.Data = data;
        }

        public IOnlineShopData Data { get; set; }
    }

И не мога да си обясня, защо дава такава грешка..., би трябвало да вижда, че има конструктор, който приема параметър от тип IOnlineShopData...

0
30/08/2015 13:23:42
a_rusenov avatar a_rusenov 1103 Точки

Не ти се компилира ли? AdsController трябва да има конструктор с 1 параметър, който прави base call.

1
a.angelov avatar a.angelov 1316 Точки

Не знам защо съм решил, че като нямам конструктор в AdsController-а ще се преизползва автоматично този от BaseApiController-а... Сложих както ти каза и вече се компилира нормално. frown Позабравят се явно нещата.

Благодаря!

1
30/08/2015 13:15:13
Petar_Ivanov avatar Petar_Ivanov 27 Точки

Здравейте, 

може ли някой да посте source code как точно става това с конструктора, защото както и да го правя, приложението ми гарми, че няма конструктор без параметри и затова не може да инициализирa AdsControllera-.

Имам още един проблем и той е, че responce.Content.ReadAsStringAsync(); за резултат получавам празен масив и не съм сигурен, да ли така се наглася mockContext-a  mockContext.Setup(m => m.Ads).Returns(this.mocks.AdRepositoryMock.Object);

Благодаря предварително!

0
a.angelov avatar a.angelov 1316 Точки

Конструкторите, които трябва да имаш в AdsController-а /тук е включен вече и IUserIdProvider-а, който трябва да включим по-нататък в лаба, него можеш да го махнеш за първото условие за тестване на Get All Ads/

public AdsController()
            : base()
{
}

public AdsController(IOnlineShopData data, IUserIdProvider userIdProvider)
    : base(data, userIdProvider)
{
}

MockContext-a:

mockContext.Setup(c => c.Ads.All()).Returns(fakeAds);

И response-a:

var adsResponse = response.Content
                .ReadAsAsync<IEnumerable<AdViewModel>>()

и т.н. продължаваш с останалата част от условието.

 

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