你如何计算vue.js的顶级.js?

时间:2018-04-26 09:19:53

标签: vue.js jest

我用Jest测试工具测试我的Vue.js项目。 对于覆盖范围,我也希望测试顶级.js。 它通过了,但我收到了以下错误信息。

你如何测试顶级.js?

import Vue from 'vue'
import App from '@/App'
import store from '@/store'
import router from '@/router'

/* eslint-disable no-new */
new Vue({
  el: '#app',
  store,
  router,
  components: { App },
  template: '<App/>',
})

我的main.js:

import main from '@/main'

describe('main.js', () => {
  beforeEach(() => {
    jest.spyOn(console, 'log')
    jest.spyOn(console, 'error')
  })

  afterEach(() => {
    console.log.mockRestore()
    console.error.mockRestore()
  })

  it('init', () => {
    expect(console.log).not.toHaveBeenCalled()
    expect(console.error).not.toHaveBeenCalled()
  })
})

我的main.spec.js:

df = pd.DataFrame([])

for x in range(10000):
    save = {}  
    terms_1 = data['text_tokenized'].iloc[x]
    save['code'] = data['code'].iloc[x]

    for y in range(3000):
        terms_2 = data2['terms'].iloc[y]
        similar_n = len(list(terms_2.intersection(terms_1)))
        save[data2['code'].iloc[y]] = similar_n

    df = df.append(pd.DataFrame([save]))

2 个答案:

答案 0 :(得分:1)

尝试执行以下操作。应该工作。

jest.conf.js 文件中添加设置文件。

guess_type

创建 setup.js 并创建div。

setupFiles: ['<rootDir>/test/unit/setup']

运行测试

希望有所帮助

答案 1 :(得分:0)

只需补充@ kimy82答案,错误消息即可:

You are using the runtime-only build of Vue where the template compiler is not available. Either pre-compile the templates into render functions, or use the compiler-included build.

发生此错误是因为用于测试的内部版本是运行时内部版本。 运行时内部版本中没有模板编译器。

解决问题的最佳方法是使用render函数而不是template属性。

new Vue({
  el: '#app',
  store,
  router,
  components: { App },
  render: h => h(App)
})

您可以在vue的package.json中看到,主要脚本是 vue.runtime.common.js

对于分发包大小问题,运行时版本没有模板编译器。

但是为什么?

A :如果您使用的是SFC,.vue文件,则使用Webpack捆绑您的应用程序,然后运行vue-loader正确编译.vue文件,并且此加载程序会编译模板转换为渲染函数,因此在运行时不需要模板编译器。

从vue中查看其他版本:https://unpkg.com/vue@2.6.10/dist/