Javascript Jest测试在移动到TypeScript后不工作
最近,我将一个项目从简单的旧JavaScript转移到了TypeScript。以前,每个测试都运行良好。就在更改之后,一些测试用例刚刚中断,我不明白为什么。我在使用Vue.js的同时还使用了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/**', '!**/
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支持”-那么,就这样,先将它们降级。