\r\n```\r\n\r\nand the following unit test\r\n\r\n```js\r\nimport { mount } from '@vue/test-utils'\r\nimport App from '@/App.vue'\r\n\r\ndescribe('App.vue', () => {\r\n it('some unit test', () => {\r\n const wrapper = mount(App, {\r\n mocks: {\r\n $t: (key: string) => key\r\n }\r\n });\r\n expect(wrapper).toBeDefined();\r\n })\r\n})\r\n```\r\n\r\nWhen running this unit test, it fails with the following error:\r\n\r\n```\r\n FAIL tests/unit/example.spec.ts\r\n HelloWorld.vue\r\n ✕ some unit test (22ms)\r\n\r\n ● HelloWorld.vue › some unit test\r\n\r\n TypeError: this.$t is not a function\r\n\r\n 8 | @Component\r\n 9 | export default class App extends Vue {\r\n > 10 | private someData = this.$t(\"message\");\r\n | ^\r\n 11 | }\r\n 12 | \r\n 13 | \r\n\r\n at new App (src/App.vue:10:1)\r\n at collectDataFromConstructor (node_modules/vue-class-component/dist/vue-class-component.common.js:165:14)\r\n at VueComponent.data (node_modules/vue-class-component/dist/vue-class-component.common.js:227:14)\r\n at getData (node_modules/vue/dist/vue.runtime.common.dev.js:4732:17)\r\n at initData (node_modules/vue/dist/vue.runtime.common.dev.js:4689:7)\r\n at initState (node_modules/vue/dist/vue.runtime.common.dev.js:4628:5)\r\n at VueComponent.Vue._init (node_modules/vue/dist/vue.runtime.common.dev.js:4987:5)\r\n at new VueComponent (node_modules/vue/dist/vue.runtime.common.dev.js:5134:12)\r\n at createComponentInstanceForVnode (node_modules/vue/dist/vue.runtime.common.dev.js:3277:10)\r\n at init (node_modules/vue/dist/vue.runtime.common.dev.js:3108:45)\r\n at createComponent (node_modules/vue/dist/vue.runtime.common.dev.js:5958:9)\r\n at createElm (node_modules/vue/dist/vue.runtime.common.dev.js:5905:9)\r\n at VueComponent. [as ____] (node_modules/vue/dist/vue.runtime.common.dev.js:6455:7)\r\n at VueComponent.Vue._update (node_modules/vue/dist/vue.runtime.common.dev.js:3933:19)\r\n at VueComponent.updateComponent (node_modules/vue/dist/vue.runtime.common.dev.js:4054:10)\r\n at Watcher.get (node_modules/vue/dist/vue.runtime.common.dev.js:4465:25)\r\n at new Watcher (node_modules/vue/dist/vue.runtime.common.dev.js:4454:12)\r\n at mountComponent (node_modules/vue/dist/vue.runtime.common.dev.js:4061:3)\r\n at VueComponent.Object..Vue.$mount (node_modules/vue/dist/vue.runtime.common.dev.js:8392:10)\r\n at mount (node_modules/@vue/test-utils/dist/vue-test-utils.js:13991:21)\r\n at Object. (tests/unit/example.spec.ts:6:21)\r\n```\r\n\r\n### Steps to reproduce\r\n\r\nJust run unit tests in this project:\r\n[i18n-test.zip](https://.com/vuejs/vue-test-utils/files/5797219/i18n-test.zip)\r\n\r\n\r\n### Expected behaviour\r\n\r\nError `this.$t is not a function` should not occur. The `$t` function is mocked.\r\n\r\n\r\n### Actual behaviour\r\n\r\nAn error `this.$t is not a function` is thrown.\r\n\r\n### Additional context\r\n\r\nIf I convert `someData` to computed property, like this:\r\n\r\n```vue\r\n\r\n\r\n\r\n```\r\n\r\nthe error is gone.\r\n","author":{"url":"https://hamdit.com/proxy/.com/Mikilll94","@type":"Person","name":"Mikilll94"},"datePublished":"2021-01-13T18:57:56.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://hamdit.com/proxy/schema.org/CommentAction","userInteractionCount":13},"url":"https://hamdit.com/proxy/.com/505/vue-class-component/issues/505"}
Open
@Mikilll94

Description

Subject of the issue

I have the following component

<template>
  <div>{{someData}}</div>
</template>

<script lang="ts">
import { Component, Vue } from 'vue-property-decorator';

@Component
export default class App extends Vue {
  private someData = this.$t("message");
}
</script>

and the following unit test

import { mount } from '@vue/test-utils'
import App from '@/App.vue'

describe('App.vue', () => {
  it('some unit test', () => {
    const wrapper = mount(App, {
      mocks: {
        $t: (key: string) => key
      }
    });
    expect(wrapper).toBeDefined();
  })
})

When running this unit test, it fails with the following error:

 FAIL  tests/unit/example.spec.ts
  HelloWorld.vue
    ✕ some unit test (22ms)

  ● HelloWorld.vue › some unit test

    TypeError: this.$t is not a function

       8 | @Component
       9 | export default class App extends Vue {
    > 10 |   private someData = this.$t("message");
         | ^
      11 | }
      12 | </script>
      13 | 

      at new App (src/App.vue:10:1)
      at collectDataFromConstructor (node_modules/vue-class-component/dist/vue-class-component.common.js:165:14)
      at VueComponent.data (node_modules/vue-class-component/dist/vue-class-component.common.js:227:14)
      at getData (node_modules/vue/dist/vue.runtime.common.dev.js:4732:17)
      at initData (node_modules/vue/dist/vue.runtime.common.dev.js:4689:7)
      at initState (node_modules/vue/dist/vue.runtime.common.dev.js:4628:5)
      at VueComponent.Vue._init (node_modules/vue/dist/vue.runtime.common.dev.js:4987:5)
      at new VueComponent (node_modules/vue/dist/vue.runtime.common.dev.js:5134:12)
      at createComponentInstanceForVnode (node_modules/vue/dist/vue.runtime.common.dev.js:3277:10)
      at init (node_modules/vue/dist/vue.runtime.common.dev.js:3108:45)
      at createComponent (node_modules/vue/dist/vue.runtime.common.dev.js:5958:9)
      at createElm (node_modules/vue/dist/vue.runtime.common.dev.js:5905:9)
      at VueComponent. [as ____] (node_modules/vue/dist/vue.runtime.common.dev.js:6455:7)
      at VueComponent.Vue._update (node_modules/vue/dist/vue.runtime.common.dev.js:3933:19)
      at VueComponent.updateComponent (node_modules/vue/dist/vue.runtime.common.dev.js:4054:10)
      at Watcher.get (node_modules/vue/dist/vue.runtime.common.dev.js:4465:25)
      at new Watcher (node_modules/vue/dist/vue.runtime.common.dev.js:4454:12)
      at mountComponent (node_modules/vue/dist/vue.runtime.common.dev.js:4061:3)
      at VueComponent.Object.<anonymous>.Vue.$mount (node_modules/vue/dist/vue.runtime.common.dev.js:8392:10)
      at mount (node_modules/@vue/test-utils/dist/vue-test-utils.js:13991:21)
      at Object.<anonymous> (tests/unit/example.spec.ts:6:21)

Steps to reproduce

Just run unit tests in this project:
i18n-test.zip

Expected behaviour

Error this.$t is not a function should not occur. The $t function is mocked.

Actual behaviour

An error this.$t is not a function is thrown.

Additional context

If I convert someData to computed property, like this:

<template>
  <div>{{someData}}</div>
</template>

<script lang="ts">
import { Component, Vue } from 'vue-property-decorator';

@Component
export default class App extends Vue {
  private get someData() {
    return this.$t("message");
  }
</script>

the error is gone.