Nie ma łatwego sposobu uzyskania dostępu do obiektu obiektu z testami integracji z AspNet.TestHost.TestServer
. Pliki cookie muszą być ustawione przez akcję kontrolera. Jaki jest najlepszy sposób, aby to osiągnąć?Dostęp do plików cookie w ramach testu jednostkowego w kontekście AspNet.TestHost.TestServer na ASP.NET 5/MVC 6
var client = TestServer.Create(app =>
{
app.UseMvc(routes =>
routes.MapRoute("default", "{controller}/{action}/{id?}"));
app.UseIdentity();
}).CreateClient();
var request = new HttpRequestMessage(HttpMethod.Get, "account/login");
var response = await client.SendAsync(request);
// how to get an access to cookie container ?????????
// response.Cookies prop doesn't exist
Assert.NotEmpty(response.Cookies["auth"]);
Rozwiązanie widzę jest rozszerzenie Instancji TestServer powrócić instancji klasy CustomClientHandler : ClientHandler
i zastąpić cały proces wysyłania żądania w tym obsługi, ale wymaga to dosłownie zmienić całą logikę wyjątkiem stosunkowo małym kod serwera testowego.
Jakieś lepsze sugestie, jak zaimplementować dostęp do plików cookie w odpowiedzi?
Link do potencjalnego rozwiązania jest zawsze mile widziany, ale proszę [dodaj kontekst wokół linku] (// meta.stackoverflow.com/a/8259), aby inni użytkownicy mieli pojęcie, co to jest i dlaczego jest tam . ** Zawsze cytuj najważniejszą część ważnego linku, na wypadek, gdyby strona docelowa była nieosiągalna lub została trwale wyłączona. ** Weź pod uwagę, że bycie "stanowiącym coś więcej niż link do strony zewnętrznej" jest możliwym powodem [Dlaczego i w jaki sposób niektóre odpowiedzi zostały usunięte?] (// stackoverflow.com/help/deleted-answers). – kayess
Zapraszam do rozwinięcia odpowiedzi, miałem tylko czas, aby wskazać im właściwy kierunek. Wydaje się, że też pomogło. – Tratcher