我正在尝试使用jest酶为反应组分创建单元测试:

it('renders the problem view without crashing', () => {
  // TODO: tell the test fixure that the current URL is /problems
  const wrapper = shallow(<App />);
  // ... check that the problem view is actually rendered...
});

根据URL(后缀),App组件应呈现不同的页面(使用react-router v4) . 我不知道如何将URL注入测试夹具:

  • 我是否必须将此注入jsdom?如果有,怎么样?

  • 还有另一种方法可以达到这个目的吗?

任何指向正确方向的指标都非常感谢!

Edit 1: 这篇文章的答案(How to test react-router by enzyme)建议编写一种白盒单元测试,检查Router对象并检查其URL->组件映射表的正确性 . 但是,我想写一个黑盒单元测试:给定正确的环境(即URL),被测组件应该呈现正确的东西,而不管使用哪个客户端路由库 .

Edit 2: Jest配置参数testULR看起来几乎就像我需要的那样,但它似乎无法从测试中设置 . 来自this question的回答给出了一些提示,但我没有找到任何关于在Jest官方文档中将Jess中的对象从测试中注入Jest的内容 .