测试服务器
用于创建HTTP和WebSocket服务器进行测试的功能.
特征
- 压缩. Spawn 服务器按需运行,同时将测试设置保持在最低限度.
- 自动一次性此工具与
using记住关键词 任何你产下的服务器都自动关闭 一旦没有使用它们. - 基于标准。使用网络标准处理请求和答复。 此库使用 浩诺 到产卵服务器.
安装
npm install @epic-web/test-server
使用量
HTTP 服务器
import { createTestHttpServer } from '@epic-web/test-server/http'
it('fetches the list of numbers', async () => {
// Create a disposable "server" instance.
await using server = await createTestHttpServer({
defineRoutes(router) {
router.get('/numbers', () => {
return Response.json([1, 2, 3])
})
}
})
// Construct URLs relatively to the test server.
const response = await fetch(server.http.url('/numbers'))
await expect(response.json()).resolves.toEqual([1, 2, 3])
})
WebSocket 服务器
import { createTestHttpServer } from '@epic-web/test-server/http'
import { createWebSocketMiddleware } from '@epic-web/test-server/ws'
it('handles WebSocket communication', async () => {
await using server = await createTestHttpServer()
// Attach WebSockets as a middleware to an existing HTTP server.
await using wss = createWebSocketMiddleware({ server })
// Handle WebSocket connections.
wss.ws.on('connect', (socket) => console.log('new connection!'))
const client = new WebSocket(wss.ws.url())
})
API 密码
createTestHttpServer([options])
创建 HTTP 服务器实例 .
options(可选)protocols, (可选)Array<'http' | 'https'>(默认 :['http']),在产入测试服务器时使用的协议列表. 提供多个值将生成多个服务器,并有相应的控制通过server.http财务报告和审定财务报表server.https。 。 。 .defineRoutes, (可选)(router: Router) => void,一个描述服务器路线的函数.
- 回返情况: 承诺 <
TestHttpServer> 翻译:
TestHttpServer
TestHttpServer.http.url([pathname])
pathname(可选,默认:/, (中文(简体) ),string,用于对照服务器的 URL 解决的路径名.- 回返情况:
URL。 。 。 .
呼叫电话 .url() 没有参数的方法返回此服务器的 URL :
server.http.url() // URL<http://localhost:56783/>
提供 pathname 参数返回该路径的 URL :
server.http.url('/resource') // URL<http://localhost:56783/resource>
TestHttpServer.close()
关闭 HTTP 服务器, 中止任何待决请求 .
[大 这个
createTestHttpServer()是一个 一次性 函数。 这意味着JavaScript将自动处理服务器实例(即关闭它),因为没有其他信息可以引用server对象. 你不用手动关闭服务器但你们 能够 如果测试需要关闭服务器的话.
createWebSocketMiddleware(options)
optionsserver, (中文(简体) ),TestHttpServer,指的是现有的测试 HTTP 服务器对象.
- 回返情况: 测试网锁服务器
注:WebSocket中间软件将自动附着到所有产入的HTTP服务器上. 如果您同时使用多个服务器( 如 HTTP + HTTPS), 两者均
wss.ws财务报告和审定财务报表wss.wssAPI将分别提供给WebSockets.
TestWebSocketServer
TestWebSocketServer.on(type, listener)
为指定事件添加一个听众.
wss.ws.on('connection', () => {})
wss.wss.on('connection', () => {})
TestWebSocketServer.once(type, listener)
为指定事件添加一次性的收听器.
TestWebSocketServer.off(type, listener)
从给定的事件中删除一个听众.