首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >调试时不按顺序执行Jest测试。

调试时不按顺序执行Jest测试。
EN

Stack Overflow用户
提问于 2021-10-09 17:13:10
回答 1查看 136关注 0票数 0

TypeScript项目中使用jestPhpStorm编写测试时,我遇到了一种非常奇怪的行为。

我做了一个简单的例子来说明这个问题:

为了解释发生了什么事:

我运行了3次测试:

  1. 第一次使用所有行和调试器时,在第14行上失败了,这是不应该的,因为mutated在这一点上仍然应该是false

  1. 第二次使用行15注释掉和调试器。它继承了以前失败的地方。

  1. 拥有所有行,但是没有调试器,它成功了。

所以这里的重点不是讨论在一个吸气剂中发生突变是好的还是坏的。

问题在于,当调试器处于活动状态时,为什么第15行第14行之前执行?

我将代码放在下面,这样您就可以更容易地阅读它:

代码语言:javascript
复制
class Foo {
    public mutated: boolean = false;

    public get getMe(): string {
        this.mutated = true;
        return 'me';
    }
}

test('state of mutated', () => {
    const foo = new Foo();
    expect(foo.mutated).toEqual(false);
    expect(foo.getMe).toEqual('me');
    expect(foo.mutated).toEqual(true);
});

谢谢你的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-10-10 16:23:42

这不是执行顺序的问题--调用是按照正确的顺序执行的。这是另一个不同的问题:使用启用变量中的自动表达式,在设置中启用,执行,Deployment颇具数据视图,调试器尝试计算表达式,以便在命中断点时计算变量值。因此,它评估foo.getMe --结果,foo.mutated变成了true,测试失败了。

我不确定这是否可以被视为一个bug或预期的行为。我只能建议在处理类似于您的代码时禁用此选项。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69508984

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档