检查JSON有效负载中是否存在prop值

时间:2018-04-23 02:16:40

标签: reactjs jestjs enzyme

我正在编写一个Jest测试来检查有效负载中是否存在<Demo payload={jsonpayload} Value="Item 1" /> value

这是我的测试文件的外观:

const payload= [
    {
        ItemName: "Item 1"
    },
    {
        ItemName: "Item 2"
    },
    {
        ItemName: "Item 3"
    },
]

it("Has a value from one of the itmes in the json payload", () => {
        const dropdown = enzyme.mount(<Dropdown {...DEMO_PROPS} />);
        const value = dropdown.props().Value;
        expect(payload.map(item => item.ItemName)).toEqual(value);
    });

我知道我的测试是错误的,因为这会返回有效负载中的所有项目。我只想测试有效负载中是否存在value

我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:1)

使用some代替map

  

some()为每个元素执行一次回调函数   数组,直到找到一个回调返回truthy值的数组(a   转换为布尔值时变为true的值)。如果这样的话   找到element,some()立即返回true。否则,一些()   返回false。

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/some

const hasItem = payload.some(item => item.ItemName == value);
expect(hasItem).toBe(true);