我正在尝试测试一个带有回调的函数。我设置了一个模拟函数,但我还需要测试一个回调。
我试图将它作为另一个模拟函数分开,但它不算作覆盖。
我正在尝试测试的功能:
export const checkDescription = async page => {
const metaDescription = await page.$eval(
'meta[name="description"]',
description => description.getAttribute("content")
);
return metaDescription;
};
Run Code Online (Sandbox Code Playgroud)
我嘲笑了页面功能:
const page = {
$eval: jest.fn(() => "Value")
};
Run Code Online (Sandbox Code Playgroud)
我的测试:
test("Should return description", async () => {
expect(await checkDescription(page)).toBe("Value");
expect(page.$eval).toHaveBeenCalled();
});
Run Code Online (Sandbox Code Playgroud)
我试图分开描述:
const description = {
getAttribute: jest.fn(() => "Value")
};
Run Code Online (Sandbox Code Playgroud)
但我不认为这是在 $eval 中覆盖描述的正确方法。
我正在尝试使用 Puppeteer 获取页面的描述,我有一个高阶函数,可以为该函数提供页面对象:
export const checkDescription = async page => {
const metaDescription = await page.$eval(
'meta[name="description"]',
description => description.getAttribute("content")
);
return metaDescription;
};
Run Code Online (Sandbox Code Playgroud)
该功能按预期工作。然后,我使用 Jest 运行测试。
const testDescription = await withPage(checkDescription)(URL);
expect(typeof testDescription).toBe("string");
Run Code Online (Sandbox Code Playgroud)
我有以下错误:
Error: Evaluation failed: ReferenceError: cov_4kq3tptqc is not defined
at __puppeteer_evaluation_script__:2:41
at ExecutionContext.evaluateHandle
at <anonymous>
at process._tickCallback (internal/process/next_tick.js:188:7)
-- ASYNC --
at ExecutionContext.<anonymous>
at ExecutionContext.evaluate
at ExecutionContext.<anonymous>
at ElementHandle.$eval
at <anonymous>
at process._tickCallback (internal/process/next_tick.js:188:7)
-- ASYNC --
Run Code Online (Sandbox Code Playgroud)
如果我只是将该函数粘贴到 jest 文件中,那么它会按预期工作
我想在我的项目中实现图表,我决定使用react-chart.js
我正在尝试在我的组件中添加一个示例,所以我添加了以下代码:
var MyChart = React.createClass({
render: function() {
console.log(chartData)
return <LineChart data={chartData} options={null} width="600" height="250"/>
}
});
module.exports = MyChart;
Run Code Online (Sandbox Code Playgroud)
chartData是一个对象
我有一个错误:
core.js:64 Uncaught TypeError :(中间值)[chartType]不是函数
我也尝试了其他图表,但没有一个能够正常工作,所以我可能做错了什么,但我找不到什么
我正在尝试为弹出模块提供一个单独的URL,我正在使用一个按钮来重定向:
trigger={ <Link href="/exercisesadd">
<Button style={style} waves='light' > Add new</Button></Link>
}>
Run Code Online (Sandbox Code Playgroud)
但我收到404错误,即使我在反应路由器中有这条路线:
export default () => {
return <Route path="/"component={Container} auth={auth}>
<IndexRoute component={Home}/>
<Route path="/portfolio" onEnter={requireAuth} component={Portfolio} />
<Route path="/Login" component={Home} />
<Route path="/home" component={Home} />
<Route path="/edit" component={Edits}/>
<Route path="/exercises" component={Exercises}/>
<Route path="/exercisesadd" component={Exercises}/>
</Route>
};
Run Code Online (Sandbox Code Playgroud) javascript ×3
jestjs ×2
puppeteer ×2
reactjs ×2
callback ×1
chart.js ×1
charts ×1
hyperlink ×1
popup ×1
react-router ×1
unit-testing ×1
web-scraping ×1