Day 26. 测试SSR常见问题

EADDRINUSE

表示你使用的Port被其他的Application占用,你可以把占用的application停用,或是使用


npx cross-env PORT=9999 npm run start

Test Passed , but Production Failed

这很可能是因为Jest预设在JSdom里面执行,而里面有关於Document等Browser才有的object定义。

这会导致误报,所以你应该要在Node环境执行测试,设置方法如下:

在spec.js顶部加入:

/**
  * @jest-environment node
  */

执行测试时如果有使用到Document等物件,会跳出undefined错误。

Seperate Clinet Test and Server Test to Different File

你只能在一个环境执行相应的测试。

所以你最好把不同环境的Testing分隔出来,这可以避免掉很多问题。

而当使用 Vue Server Test Utils时,你的VUE_ENV被直接被设为server,於是你把测试分隔成Server Side 及 Client Side时这很棒,因为Jest可以让每个测试执行於不同的Process。

但是如果你使用别的测试框架,而它会把测试执行在同一个Process的话你可能会遇到问题。

比较好的做法是,分隔出不同的Script来执行Server Side Test 以及 Clinet Side Test。

下一篇继续。


<<:  Day 30 | 铁人赛完赛,切版之路未完 - 结语

>>:  Day30:HTML(28) form(7)

D28 - 彭彭的课程# Python 实体物件的建立与使用 - 下篇 - 实体方法 - Instance Method(2)

可恶今天抽的各种卷我都没中奖 呜呜 希望下礼拜可以轮到我 好今天要来练习读档案的包装程序 会读这两个...

[Day 29] 利用CreateML训练的模型判断情绪(下)

昨天我们已经做出用CreateML训练的模型来判断情绪的app,今天就要来展示我们的成果,那这边设...

【演算法】L1-4

L1 Convex Hull 解法:Divide-and-conquer One-Center Pr...

Google Recaptcha v3 使用心得

简单说一下,纪录今天的成果 使用Google Recaptcha v3 一开始的想法是在送给後端前先...

Day 17 - useReducer + useContext = Redux?

如果有错误,欢迎留言指教~ Q_Q 上篇 Day 16 - 用 useReducer 取代 Red...