酶+反应预期成分字符串-未能解析选择器

时间:2019-02-13 11:45:32

标签: reactjs unit-testing testing jestjs enzyme

所以我有这个测试案例需要解决。背景是将开发人员环境更新为较新版本,此后,我们的许多测试都失败了。

在这里,我有一个奇怪的情况,结果是: “无法解析选择器:标签价格明细1”

这是测试代码段的样子,我希望我已经添加了所有必要的内容。

it('Should render with price and one addon', () => {
    data.addonHeaderName = 'addonHeaderName';
    data.addons.push(
      {
        price: {
          label: 'Addon text 1',
          value: 50.33,
          unit: 'dollars',
          vat: 'excl'
        },
        discount: {
          label: 'Addon text 2',
          value: 11.43,
          unit: 'dollars',
          vat: 'excl'
        },
        future: false,
        addonIcon: 'icon',
        ecoText: 'Addon eco text',
        linkUrl: 'http://testaddonlink.com'
      }
    );
    
    
    data.contract.prices.push(
      {
        id: 'price',
        label: 'Label price detail 1',
        unit: 'dollars',
        value: 4.03
      },
      {
        id: 'Label price detail 2',
        label: 'Discount',
        unit: 'dollars',
        value: -3.00
      }
    );
    
    
 const component = shallow(
      <MyContract
        data={data}
        andSomeOtherStuff={otherStuff}
      />
    );
    expect(component).toMatchSnapshot();
    expect(component.find('Label price detail 1')).toBeTruthy();
    expect(component.find('Label price detail 2')).toBeTruthy();
    expect(component.find('Addon text 1')).toBeTruthy();
    expect(component.find('Addon text 2')).toBeTruthy();
    expect(component.find('Addon eco text')).toBeTruthy();

如果我注释掉第一个期望,它将击中下一个期望,然后击中另一个期望,依此类推。

之前我们同时运行Enzyme 2.9.1和酶Adaptor-react-15(当然还有React 15),但是由于我们已经升级到React 16,所以我们还需要更新其他一些依赖项,例如这个。然后狗屎砸了风扇。

现在我们使用的是Enzyme 3.8.0,enzyme-adapter-react-16.3和React 16.3.x。

我一直在努力尝试以字符串形式获取它,但没有bueno。关于我在这里缺少什么的任何想法?

2 个答案:

答案 0 :(得分:0)

酶发现可与CSS选择器一起使用,因此,如果您想在标签上进行搜索,则应该使用类似以下内容的

component.find('[label="Label price detail 1"]')

此外,我相信无论找到与否,这始终是真实的。 (虽然不确定那一个)。

我通常使用.toHaveLength(1)检查它是否被渲染!

答案 1 :(得分:0)

我以前有过这个,这看起来像是打字错误。确认字符串。