У меня есть компонент React, как показано ниже
import React, { Component } from 'react'
import { ActionWrapper } from 'components/Wrappers'
import { P } from 'components/Text'
class TestStock extends Component {
total = (a, b) => {
let totValue = 0
totValue = a + b
return totValue
}
render() {
return (
<ActionWrapper
title = "In stock"
description = {'Manage your in stock items'}
>
<P>Total is {this.totValue}</P>
</ActionWrapper>
)
}
}
export default TestStock
и я должен написать тест, чтобы проверить общую функцию ниже
describe('total function in the stock', () => {
const wrapper = shallow(<Stock />)
const value = wrapper.instance().total(5 + 7)
test('for total value calculation', () => {
expect(value).toBe(6)
})
test('for total less or equal to 10 ', () => {
expect(value).toBeLessThanOrEqual(10)
})
})
Но тест не удался, так как я получил Nan в качестве значения. Что я сделал не так, как мне проверить эту функцию
Проблема в том, что вместо передачи значений в качестве аргументов функции экземпляра вы передаете их как выражение, и, следовательно, вторым аргументом является undefined
, в результате чего a + b
будет оценен как NaN
внутри функции. Измените свой код на
const value = wrapper.instance().total(5, 7)