我试图像这样在Jest中循环测试:
describe('Test <ChartWidget /> structure in other views.', () => {
const buttonsText = ["Totals per month", "Totals per year", "Values per month"];
buttonsText.forEach( (text) => {
const button = mountedChartWidget.find('button').findWhere(button => button.text()===text);
button.simulate('click');
it('has correct header', () => {
expect(mountedChartWidget.contains(
<header>
<h1>DATA CHART</h1>
<h2>{text}</h2>
<p>Use the buttons and filters below to display different data for different countries or years.</p>
</header>
)).toEqual(true);
});
)};
我发现有几个主题说这是可能的,除非它每次都惨遭失败,而且正如我发现的那样,这是因为&#39;它&#39;块都是马上执行的。 (我通过在&#39; it&#39;块之前添加console.log(文本)来解决问题,并且控制台显示&#39; text&#39;的值都在三个&#39之前正确记录39;它的块被执行,因此最终的结果是在文本已被分配其最终值之后执行的三个块。
有谁知道如何正确实现这样的循环?有什么方法可以延迟执行&#39;它&#39;阻止它在文本&#39;之前运行。有正确的价值吗?
谢谢!