Spotify.NET/SpotifyAPI.Docs/docs/unit_testing.md
Nova 300c51db3c
Minor fixes for comprehesion (#507)
Fixed capitalization, spelling, grammar, added gender-neutral language
2020-09-16 09:13:21 +02:00

790 B

id title
unit_testing Unit Testing

The modular structure of the library makes it easy to mock the API when unit testing. Consider the following method:

public static async Task<bool> IsAdmin(IUserProfileClient userProfileClient)
{
  // get logged in user
  var user = await userProfileClient.Current();

  // only my user id is an admin
  return user.Id == "1122095781";
}

Using Moq, this can be tested without doing any network requests:

[Test]
public async Task IsAdmin_SuccessTest()
{
  var userProfileClient = new Mock<IUserProfileClient>();
  userProfileClient.Setup(u => u.Current()).Returns(
    Task.FromResult(new PrivateUser
    {
      Id = "1122095781"
    })
  );

  Assert.AreEqual(true, await IsAdmin(userProfileClient.Object));
}