如何用玩笑测试 Next.js 的 getServerSideProps
Posted
技术标签:
【中文标题】如何用玩笑测试 Next.js 的 getServerSideProps【英文标题】:How to Test Next.js's getServerSideProps with jest 【发布时间】:2021-08-17 04:45:21 【问题描述】:我想在 Next.js 的 getServerSideProps
函数上使用 Jest 和 Enzyme 运行测试。该函数如下所示:
export const getServerSideProps: GetServerSideProps = async (context) =>
const id = context?.params?.id;
const businessName = getBusinessName(id);
return
props:
businessName: response.data?.name,
businessID: id,
,
;
;
但是,由于我在函数中使用了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")
);
我的问题是我将什么传递给上下文参数。我知道它需要是类型:GetServerSidePropsContext<ParsedUrlQuery>
。但我不确定如何创建该类型。我可以将什么传递给函数,同时还允许我在参数中添加 id
值?
【问题讨论】:
【参考方案1】:在测试中将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");
);
【讨论】:
以上是关于如何用玩笑测试 Next.js 的 getServerSideProps的主要内容,如果未能解决你的问题,请参考以下文章
如何用 Jest 单元测试覆盖 TypeORM @Column 装饰器?