Тестирование с использованием Jest, как ожидать, что результатом будет массив компонентов - PullRequest
0 голосов
/ 12 июня 2019

Код моего теста следующий:


it('makes sure the list items are populated', () => {
    var view = ReactTestUtils.renderIntoDocument(<Sidebar />)
    var result = view.populateLi();
    expect(result).toBe(Array);
});

Предполагается, что результатом будет массив компонентов с именем ListItem.

Expected: [Function Array]
Received: [<ListItem … />, <ListItem … />, <ListItem … />, <ListItem … />, <ListItem … />, <ListItem … />, <ListItem … />, <ListItem … />, <ListItem … />, <ListItem … />, <ListItem … />, <ListItem … />, <ListItem … />]

Как мне написать тест, соответствующий сценарию Received.

1 Ответ

0 голосов
/ 12 июня 2019

Использовать scryRenderedComponentsWithType :

     var result = TestUtils.scryRenderedComponentsWithType(view, ListItem);

Поскольку это вернет Array из ListItem с, все, что вам нужно сделать, это проверить, что длина массива соответствует ожидаемой:

  expect(result).length.to.equal(12); // or however many you expect

Если вы хотите проверить, работает ли ваша функция populateLi, вам, вероятно, стоит провести отдельный тест:

var result = TestUtils.scryRenderedComponentsWithType(view, ListItem);     
var populateResult = view.populateLi();

expect(result).to.deep.equal(populateResult)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...