Почему функции JS вызываются только один раз в структуре каратэ, если должны несколько раз? - PullRequest
1 голос
/ 16 апреля 2019

Вот мой тестовый сценарий

Scenario:  build json using js function
* def x = read('classpath:data/user.json')
* def body = { updated : [], deleted : [] };
* def fun =
"""
 function(n){
    for(i=0; i<n; i++) {
        x.email = 'api.test+' +  Math.random() + '@cii.io';
        body.updated.add(x);

    }
  }
"""
* eval fun(3)
* copy body = body
* print body

Я ожидаю, что у меня будет 3 сущности с 3 уникальными электронными письмами, потому что Math.random () вызывается каждый раз.Но я вижу следующий результат

  {
   "updated": [
    {
      "email": "api.test+0.5327150054220268@cii.io",
      "businessUnit": "DE"
    },
    {
      "email": "api.test+0.5327150054220268@cii.io",
      "businessUnit": "DE"
    },
    {
      "email": "api.test+0.5327150054220268@cii.io",
      "businessUnit": "DE"
    }
  ],
  "deleted": [
  ]
}

Интересно, что я здесь не так делаю?

1 Ответ

1 голос
/ 23 апреля 2019

Это прекрасно работает для меня:

* def tmp = []
* def fun = function(n){ for(var i = 0; i < n; i++) tmp.add(i) }
* eval fun(3)
* print tmp
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...