Jac*_*ack 8 typescript reactjs jestjs next.js
我想使用 Jest 和 Enzyme 对 Next.js 的 getServerSideProps功能进行测试。该函数如下所示:
export const getServerSideProps: GetServerSideProps = async (context) => {
const id = context?.params?.id;
const businessName = getBusinessName(id);
return {
props: {
businessName: response.data?.name,
businessID: id,
},
};
};
Run Code Online (Sandbox Code Playgroud)
但是,由于我context在函数中使用参数,因此我需要将上下文传递到测试中。我现在的测试看起来像:
it("check on good case", () => {
const value = getServerSideProps(/*I'm not sure what to put here*/);
expect(value).toEqual({props: {businessName: "Name", businessID: "fjdks"}})
});
Run Code Online (Sandbox Code Playgroud)
我的问题是我应该将什么传递给上下文参数。我知道它的类型必须是:GetServerSidePropsContext<ParsedUrlQuery>。但我不确定如何创建该类型。我可以将什么传递到函数中,同时也允许我id在参数中添加值?
在测试中传递context对象时,您可以诉诸类型转换。getServerSideProps
it("check on good case", () => {
const context = {
params: { id: "fjdks" } as ParsedUrlQuery
};
const value = getServerSideProps(context as GetServerSidePropsContext);
expect(value).toEqual({props: {businessName: "Name", businessID: "fjdks"}});
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10334 次 |
| 最近记录: |