Перебор списка объектов в Kotlin TestCase - PullRequest
1 голос
/ 15 марта 2019

Я использую модульный тест с использованием Kotlin и не могу перебрать список объектов в моем тестовом примере. Пожалуйста, проверьте код ниже,

@Test
  @WithMockOAuth(siteId = "5698965", subPermissions = [SubPermission.GETD])
  fun `get fee zero`() {

    val body = """
      {
      "newMessage": {
        "call": true,
        "callMessatgeCount": 3,
        "discounted": 2,
        "NewFees": 4.99,
        "Id" : "extra SIM Business"
      }
    }
      """.trimIndent()

    this.server.expect(requestTo("${integrationClientProperties.url}/main/0767777777/register/"))
      .andRespond(withSuccess(body, MediaType.APPLICATION_JSON_UTF8))

    assertThat(service.getValues("0767777777"))
      .hasSize(3)
      .first()
      .hasFieldOrPropertyWithValue("callMessatgeCount", 3)
      .hasFieldOrPropertyWithValue("NewFees", BigDecimal.ZERO)

    this.server.verify()
  }

Выше я могу проверить hasFieldOrPropertyWithValue для first() элемент, как hasSize(3) мне нужно проверить все 3 значения, которые List of Objects в том же методе TestCase.

Список объектов, как показано ниже

ListValue:[
{
      "newMessage": {
        "call": true,
        "callMessatgeCount": 3,
        "discounted": 2,
        "NewFees": 4.99,
        "Id" : "extra SIM Business"
      },
{
      "newMessage": {
        "call": true,
        "callMessatgeCount": 3,
        "discounted": 2,
        "NewFees": 0,
        "Id" : "extra SIM Business"
      },
{
      "newMessage": {
        "call": true,
        "callMessatgeCount": 3,
        "discounted": 2,
        "NewFees": 4.99,
        "Id" : "extra SIM Business"
      }
]

Примечание: Я попытался element(index) проверить список объектов, используя несколько тестовых случаев.

Обновлено
Библиотека "org.assertj.core.api.Assertions и поддерживает java8

1 Ответ

0 голосов
/ 16 марта 2019

Предполагая, что вы используете AssertJ из имен методов и что у вас есть версия с поддержкой Java-8 (т. Е. 3.5 + ), вы можете найти метод allSatisfy :

Проверяет, что все элементы удовлетворяют заданным требованиям, выраженным как Потребитель.

Это полезно для выполнения группы утверждений для элементов.

Из документов должно работать что-то вроде следующего

assertThat(service.getValues("0767777777"))
  .hasSize(3)
  .allMatch { assertThat(it)
      .hasFieldOrPropertyWithValue("callMessatgeCount", 3)
      .hasFieldOrPropertyWithValue("NewFees", BigDecimal.ZERO)
  }

Вы также можете изучить библиотеки, специфичные для Kotlin (особенно если вам нужно скомпилировать в JVM 6).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...