Javascript Jest测试在移动到TypeScript后不工作

Javascript Jest测试在移动到TypeScript后不工作,javascript,typescript,vue.js,jestjs,vue-test-utils,Javascript,Typescript,Vue.js,Jestjs,Vue Test Utils,最近,我将一个项目从简单的旧JavaScript转移到了TypeScript。以前,每个测试都运行良好。就在更改之后,一些测试用例刚刚中断,我不明白为什么。我在使用Vue.js的同时还使用了Vue测试utils和jest jest.config.js module.exports = { collectCoverageFrom: [ '/src/**/*.{js,jsx,vue}', '!**/node_modules/**', '!**/

最近,我将一个项目从简单的旧JavaScript转移到了TypeScript。以前,每个测试都运行良好。就在更改之后,一些测试用例刚刚中断,我不明白为什么。我在使用Vue.js的同时还使用了
Vue测试utils
jest

jest.config.js

module.exports = {
    collectCoverageFrom: [
        '/src/**/*.{js,jsx,vue}',
        '!**/node_modules/**',
        '!**/vendor/**',
    ],
    moduleFileExtensions: [
        'ts',
        'js',
        'json',
        'vue',
    ],
    transform: {
        '.*\\.(vue)$': 'vue-jest',
        '^.+\\.js$': 'babel-jest',
        '^.+\\.ts$': 'ts-jest',
    },
    transformIgnorePatterns: [
        '<rootDir>/node_modules/(?!vuex-class-modules).+\\.js$',
    ],
    moduleNameMapper: {
        '^@/(.*)$': '<rootDir>/src/$1',
    },
    setupFilesAfterEnv: [
        '@testing-library/jest-dom/extend-expect',
    ],
};
function mountStore(loggedInState) {
    const store = new Vuex.Store({
        modules: {
            customer: {
                namespaced: true,
                state: {
                    isLoggedIn: loggedInState,
                },
                actions,
            },
        },
    });

    return shallowMount(Component, {
        localVue,
        store,
        router,
        stubs: { 'router-link': RouterLinkStub },
    });
}

describe('Test with customer logged in at beginning', () => {
    let wrapper;

    beforeEach(() => {
        wrapper = mountStore(true);
    });

    it('should redirect to home if user is logged in on init', () => {
        expect(wrapper.vm.$route.name).toBe('Home');
    });
});
关于这个特定的测试用例,结果如下

expect(received).toBe(expected) // Object.is equality

Expected: "Home"
Received: null
我还注意到升级所有依赖项(包括一些Jest依赖项)会导致更多的测试失败。所以我希望(可能)这就是原因,因为我后来才添加了TypeScript支持。然而,我不知道什么依赖组合会导致错误的行为

我已经更新了相关的依赖关系,这最终会导致更多的测试失败

  • 开玩笑
  • 开玩笑
  • 巴别塔玩笑

    • 您是否尝试添加
      @types/jest
      ?并将其添加到您的
      tsconfig.json

      "types": ["@types/node", "@nuxt/types", "@types/jest", "nuxt-i18n"]
      

      您是否尝试添加
      @types/jest
      ?并将其添加到您的
      tsconfig.json

      "types": ["@types/node", "@nuxt/types", "@types/jest", "nuxt-i18n"]
      

      由于您将
      ts jest
      babel jest
      一起使用,因此可以使用
      jest.config.js

      添加


      由于您将
      ts jest
      babel jest
      一起使用,因此可以使用
      jest.config.js

      是的,包括在内。但是,我没有得到任何类型错误。测试失败了。我已经相应地更新了我的问题。是的,它们包括在内。但是,我没有得到任何类型错误。测试失败了。我已经相应地更新了我的问题。什么都不做。结果还是一样,什么都没做。仍然是相同的结果。因为没有编译器错误,我不认为TS本身应该受到责备。更好地关注“将项目从简单的旧JavaScript移动到TypeScript”时所做的更改。“所以我认为这(可能)是原因,因为我后来才添加了TypeScript支持”-然后就是这样,先将它们降级。因为没有编译器错误,我认为不必怪TS本身。更好地关注“将项目从简单的旧JavaScript移动到TypeScript”时所做的更改。“所以我认为这(可能)是原因,因为我后来才添加了TypeScript支持”-那么,就这样,先将它们降级。