在单元测试期间,当使用json文件执行svelte组件时,我会得到未定义的错误。
Restaurant.svelte :
import data from '../Data/restaurants.json';
console.log(data);
let finalData = data.restaurants;restaurant.spec.js :
import Restaurant from './../routes/Restaurant.svelte';
import { render, screen, fireEvent } from "@testing-library/svelte";
describe("Restaurants Home Page",()=>{
it("Tests for Header",()=>{
render(Restaurant);
const resheader = screen.getByText("Restaurants");
expect(resheader).toBeVisible();
})
})Jest Config文件:
{
"transform": {
"^.+\\.js$": "babel-jest",
"^.+\\.svelte$": "svelte-jester",
".+\\.(css|styl|less|sass|scss|png|jpg|ttf|woff|woff2)$": "jest-transform-stub"
},
"moduleFileExtensions": ["svelte", "js", "json"],
"transformIgnorePatterns": ["node_modules/(?!(svelte-spa-router|svelte-i18n)/)"],
"testEnvironment": "jsdom",
"setupFilesAfterEnv": ["@testing-library/jest-dom/extend-expect"],
"moduleDirectories": [
"node_modules",
"src"
],
"moduleNameMapper": {
"src/(.*)": "<rootDir>/src/Data"
}
}错误Msg: TypeError:无法读取未定义的属性(读取“餐馆”)
7 |
8 | console.log(data);
> 9 | let finalData = data.restaurants;发布于 2022-05-08 20:30:39
我强烈建议使用最凶猛测试SvelteKit应用程序,因为它们都使用vite,这减少了配置和不兼容的数量。
尽管如此,这也可以通过使用* as语法在svelte-jester中工作:
import * as data from "../data/restaurants.json";https://stackoverflow.com/questions/72097867
复制相似问题