Recibo un error (después de actualizar RestSharp - v107) en la siguiente línea:
var contacts = new JsonDeserializer().Deserialize<List<Contact>>(response);
Error CS0246 No se pudo encontrar el tipo o el nombre del espacio de nombres 'JsonDeserializer' (¿falta una directiva de uso o una referencia de ensamblado?)
using NUnit.Framework; using RestSharp; using System.Text.Json; using System; using System.Collections.Generic; using System.Net; namespace ContactBook.ApiTests { public class ContactBookApiTests { const string ApiBaseUrl = "URl/api"; RestClient client; [SetUp] public void Setup() { this.client = new RestClient(ApiBaseUrl); } [Test] public void Test_ListContacts_CheckForSteveJobs() { // Arrange var request = new RestRequest("/contacts", Method.Get); // Act var response = this.client.ExecuteAsync(request); // Assert Assert.That(response.Status, Is.EqualTo(HttpStatusCode.OK)); var contacts = new JsonDeserializer().Deserialize<List<Contact>>(response); Assert.That(contacts.Count, Is.GreaterThan(0)); var firstContact = contacts[0]; Assert.That(firstContact.firstName, Is.EqualTo("Steve")); Assert.That(firstContact.lastName, Is.EqualTo("Jobs")); } }prueba esto
var response = this.client.ExecuteAsync(request).Result; //or better var response = this.client.Execute(request); .... var contacts = JsonSerializer.Deserialize<List<Contact>>(response.Content);var response = this.client.ExecuteAsync(request); Como sugiere el nombre, esta función devuelve Task<RestResponse> . Tienes que esperar la llamada.
Tampoco es necesario deserializar explícitamente la respuesta, RestSharp lo hará por usted.
public async Task Test_ListContacts_CheckForSteveJobs() { var request = new RestRequest("/contacts", Method.Get); var response = await client.ExecuteAsync<Contact[]>(request); var contacts = response.Data; // Assert Assert.That(response.Status, Is.EqualTo(HttpStatusCode.OK)); Assert.That(contacts.Count, Is.GreaterThan(0)); var firstContact = contacts[0]; Assert.That(firstContact.firstName, Is.EqualTo("Steve")); Assert.That(firstContact.lastName, Is.EqualTo("Jobs")); }