Skip to content
该翻译已同步到了 的版本,其对应的 commit hash 是 7c55128
同时该文档仍处于校对中,如有任何疑问或想参与校对工作,请移步这里了解更多。

测试服务端渲染

Vue Test Utils 提供了 renderToString 方法,用于测试使用服务器端渲染 (SSR) 的 Vue 应用程序。本指南将带你了解如何测试使用 SSR 的 Vue 应用程序。

renderToString

renderToString 是一个将 Vue 组件渲染为字符串的函数。它是一个异步函数,返回一个 Promise,并接受与 mountshallowMount 相同的参数。

让我们考虑一个使用 onServerPrefetch 钩子的简单组件:

ts
function fakeFetch(text: string) {
  return Promise.resolve(text)
}

const Component = defineComponent({
  template: '<div>{{ text }}</div>',
  setup() {
    const text = ref<string | null>(null)

    onServerPrefetch(async () => {
      text.value = await fakeFetch('onServerPrefetch')
    })

    return { text }
  }
})

你可以使用 renderToString 为这个组件编写测试:

ts
import { renderToString } from '@vue/test-utils'

it('renders the value returned by onServerPrefetch', async () => {
  const contents = await renderToString(Component)
  expect(contents).toBe('<div>onServerPrefetch</div>')
})

Released under the MIT License.