小编Cha*_*ter的帖子

Vue-Test-Utils未知自定义元素:<router-link>

我正在使用Jest使用vue-test-utils库来运行我的测试.

即使我已经将VueRouter添加到localVue实例,它也说它实际上找不到路由器链接组件.如果代码看起来有点时髦,那是因为我使用TypeScript,但它应该非常接近ES6 ...主要的是@Prop()与传递道具相同:{..}

Vue组件:

<template>
  <div>
    <div class="temp">
      <div>
        <router-link :to="temp.url">{{temp.name}}</router-link>
      </div>
    </div>
  </div>
</template>

<script lang="ts">
import Vue from 'vue'
import Component from 'vue-class-component'
import { Prop } from 'vue-property-decorator'
import { Temp } from './Temp'

@Component({
  name: 'temp'
})
export default class TempComponent extends Vue {
  @Prop() private temp: Temp
}
</script>

<style lang="scss" scoped>
.temp {
  padding-top: 10px;
}
</style>
Run Code Online (Sandbox Code Playgroud)

临时模型:

export class Temp {
  public static Default: Temp = new Temp(-1, '')

  public url: string

  constructor(public …
Run Code Online (Sandbox Code Playgroud)

jestjs vue-router vue-component vuejs2 vue-test-utils

11
推荐指数
2
解决办法
4724
查看次数

如何跨多个文件跨越javascript命名空间?

我永远忽略了javascript.几年前我开始使用jQuery,所以我可以顺利通过.但是当我开始做TDD时,我决定昨天真正深入了解javascript(之后可能还有coffeescript).

在我的ASP.NET Web窗体应用程序中,我有很多页面,目前大多数页面都没有大量的javascript.我正在改变这一点.我正在使用Jasmine和Chutzpah来创建我的测试.

我正在按照我的测试通过并按预期失败.但后来我想创建一个名称空间,所以我不会在全球范围内踩踏.

阅读本文后:http: //enterprisejquery.com/2010/10/how-good-c-habits-can-encourage-bad-javascript-habits-part-1/

我决定尝试使用本文的自执行匿名函数:第2部分(公共和私有)部分中的模式.它似乎具有最大的灵活性,似乎很好地封装了一些东西.

我有一个名为/ Scripts的文件夹.在该文件夹下是我正在使用的一些框架,如jQuery,jasmine,(twitter)bootstrap和modernizr.我还有一个名为/ Site的子文件夹,我根据页面将我的代码放在多个文件中.(product.js,billing.js等)

在/ Scripts/Site下我向/ Tests(或Specs)添加了一个子文件夹,其中包含文件(product_test.js,billing_tests.js等).

没有命名空间一切都很好.我有一个用padLeft帮助函数创建的utility.js文件.然后我在另一个.js文件中使用了全局padLeft.我的测试都奏效了,我很高兴.然后我决定找出命名空间并将我的Scripts/Site/utility.js更改为:

(function (myns, $, undefined) {
    //private property
    var isSomething = true;

    //public property
    myns.something = "something";

    //public method
    myns.padLeft = function (str, len, pad) {
        str = Array(len + 1 - str.length).join(pad) + str;

        return str;
    };


    //check to see if myns exists in global space
    //if not, assign it a new Object Literal
}(window.myns= window.myns|| {}, jQuery ));
Run Code Online (Sandbox Code Playgroud)

然后在我的Scripts/Site/Tests/utility_test.js中

/// <reference …
Run Code Online (Sandbox Code Playgroud)

javascript unit-testing javascript-namespaces

5
推荐指数
1
解决办法
4105
查看次数