我开始对 React.js 应用程序进行单元测试,我面临的挑战之一是确定组件正确安装它所需的所有道具。是否有任何实用程序可以检查成功安装组件所需的一切?此外,这些道具的数据类型可以为组件渲染适当地初始化它们。
就像我的一个组件是使用扩展{...props}运算符从父级获取道具一样。并且父级也使用扩展运算符获取这些,然后添加一些额外的道具并将其传递给子级。这使我很难获得组件期望的所有道具。有没有合法的方法来获取道具列表?
有没有办法检测选项卡关闭事件以清除localStorage. 我需要localStorage跨标签共享数据。window.onbeforeunload事件工作正常,但对我来说有两个问题:
就像当窗口关闭时一样sessionStorage被清除。同时我可以清除localStorage但不知道要绑定什么事件。我检查了一些已经可用的问题,但似乎没有一个可以解决这个问题,有一些解决方法是通过使用标志来点击链接和表单提交,但不是一种干净的方法。请为此提出任何解决方案。
我尝试使用 jest 测试我的 React 应用程序的未经测试的源 js 文件的代码覆盖率,但震惊地发现它对所有文件的代码覆盖率大多为 0%。component.js使用 Jest测试React 文件的代码覆盖率是否可以,或者我在这里做错了什么。
这是我在 package.json 中指定的 jest 配置:
"jest": {
"testEnvironment": "node",
"collectCoverageFrom" : ["**/src/**/*.js"]
}
Run Code Online (Sandbox Code Playgroud)
我的覆盖率快照:
我不相信 0% 的代码语句正在为所有文件执行。我在这里缺少什么吗?这个报告适用于 es6 应用程序吗?我什至通过弹出 webpack 测试了使用 react cli create-react-app 创建的 react 样板应用程序的代码覆盖率。甚至样板应用程序也将未经测试的 js 文件的代码覆盖率显示为 0%。这是 100% 错误的。对这个结果有什么想法吗?
我在我的React应用程序IE11中遇到的问题是UI没有为每个新请求命中后端服务并从缓存数据返回响应.该应用程序在Chrome上正常运行.
在IE的情况下,服务以代码结束:304而不是200. PFB请求标头:
Accept application/json,*/*
Request GET /services/v0/search/?uid=12900 HTTP/1.1
Content-Type application/json
Cache-Control no-cache
Run Code Online (Sandbox Code Playgroud)
PFB获取的响应头IE:
Response HTTP/1.1 304 Not Modified
x-frame-options DENY
x-xss-protection 1; mode=block
x-content-type-options nosniff
Run Code Online (Sandbox Code Playgroud)
任何线索,IE渲染这种行为背后的原因是什么?TIA
internet-explorer http cache-control internet-explorer-11 reactjs
我在package.json文件中有一个npm任务,如下所示执行jest测试:
"scripts": {
"test-jest": "jest",
"jest-coverage": "jest --coverage"
},
"jest": {
"testEnvironment": "jsdom"
},
Run Code Online (Sandbox Code Playgroud)
我想npm run test-jest用grunt 执行这个任务.我为此安装了grunt-run并添加了运行任务,但是如何在那里调用这个npm任务呢?
run: {
options: {
// Task-specific options go here.
},
your_target: {
cmd: 'node'
}
}
Run Code Online (Sandbox Code Playgroud) 当用户刷新我的应用程序中的其他页面时,我需要重定向到主页。我正在使用React routerv4 和redux. 由于商店在重新加载时丢失,用户重新加载的页面现在是空的,因此我想将他带回不需要任何先前存储数据的页面。我不想在localStorage.
我试图在事件中处理此问题,onload但没有奏效:
window.onload = function() {
window.location.path = '/aaaa/' + getCurrentConfig();
};
Run Code Online (Sandbox Code Playgroud) 我正在开发一个 Vue 应用程序,想要为默认路由设置精确的路径匹配。我有 React 和 Angular 的经验,并且都提供了选项exact,pathMatch:'full'因此默认路由只有在完全匹配时才会生效。
在 vue 中,当我刷新应用程序时,默认路由将被触发并将用户带回首页。有没有办法在 Vue 中做类似的事情?
routes: [
{
path: "/",
name: "home",
component: Home
// how can I add exact match config here?
},
{
path: "/login",
name: "login",
component: () =>
import(/* webpackChunkName: "about" */ "./views/Login.vue")
},
{
path: "/charts",
name: "charts",
component: () =>
import(/* webpackChunkName: "about" */ "./views/ChartDemo.vue")
}
]
Run Code Online (Sandbox Code Playgroud) 我正在使用 Jest 对我的 ReactJS 应用程序进行单元测试,并添加了配置以获取代码覆盖率。覆盖率在 cli 上运行良好,但是当我尝试将覆盖率报告导出为 html 时,报告中未显示与每个文件对应的值。这是我的 jest.config.json:
{
"roots": [
"test"
],
"collectCoverage": true,
"coverageReporters": ["text","html"],
"coverageDirectory": "<rootDir>/coverage/"
}
Run Code Online (Sandbox Code Playgroud)
这是我在 index.html 文件中的coverage文件夹中生成的报告:
可以看出,数字丢失了。当文本报告也显示正确的值时,可能是什么原因。它只发生在 html 报告中。
我试图在 React 应用程序中实现 partytown,但 partytown 文档不清楚,我无法找到用于 partytown 实现的良好资源。请通过一个很好的例子来指导如何在 React 中实现 partytown。另外,有什么方法可以检查 partytown 是否已实施
我用的是angluar4 http,比如登录请求服务器,当我点击按钮提交表单时,谷歌浏览器的网络捕获了两个请求,其中一个是zone.js: 2744(返回数据错误)。
为什么有两次?
我的代码参考在这里?https://angular.cn/tutorial/toh-pt6
1
2
3

reactjs ×7
jestjs ×4
http ×2
react-redux ×2
redux ×2
unit-testing ×2
angular ×1
angularjs ×1
enzyme ×1
gruntjs ×1
html ×1
istanbul ×1
javascript ×1
node.js ×1
npm ×1
partytown ×1
react-router ×1
vue-router ×1
vue.js ×1
vuejs2 ×1
window ×1
zone.js ×1