Browse Source
* Fix api url * Fixed DAG zoom in and zoom out nodes separated from arrows * Fix front-end code specifications * Fix front-end code specifications * Fix front-end code specifications * jest unit test demo * jest unit test demopull/2/head
break60
5 years ago
committed by
qiaozhanwei
6 changed files with 215 additions and 0 deletions
@ -0,0 +1,8 @@
|
||||
{ |
||||
"presets": [["env", { "modules": false }]], |
||||
"env": { |
||||
"test": { |
||||
"presets": [["env", { "targets": { "node": "current" } }]] |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,55 @@
|
||||
|
||||
/* |
||||
* Licensed to the Apache Software Foundation (ASF) under one or more |
||||
* contributor license agreements. See the NOTICE file distributed with |
||||
* this work for additional information regarding copyright ownership. |
||||
* The ASF licenses this file to You under the Apache License, Version 2.0 |
||||
* (the "License"); you may not use this file except in compliance with |
||||
* the License. You may obtain a copy of the License at |
||||
* |
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
import { mount } from '@vue/test-utils' |
||||
import Counter from '../src/components/Counter.vue' |
||||
|
||||
describe("Counter.vue", () => { |
||||
it("渲染Counter组件", () => { |
||||
const wrapper = mount(Counter) |
||||
expect(wrapper.element).toMatchSnapshot() |
||||
}) |
||||
|
||||
it("初始化之为0", () => { |
||||
const wrapper = mount(Counter) |
||||
expect(wrapper.vm.count).toEqual(0) |
||||
}) |
||||
|
||||
it("加1", () => { |
||||
const wrapper = mount(Counter) |
||||
wrapper.vm.inc() |
||||
expect(wrapper.vm.count).toEqual(1) |
||||
}) |
||||
|
||||
it("减1", () => { |
||||
const wrapper = mount(Counter) |
||||
wrapper.vm.dec() |
||||
expect(wrapper.vm.count).toEqual(-1) |
||||
}) |
||||
|
||||
it("重置", () => { |
||||
const wrapper = mount(Counter) |
||||
wrapper.vm.reset() |
||||
expect(wrapper.vm.count).toEqual(0) |
||||
}) |
||||
|
||||
it("因数为10加1操作", () => { |
||||
const wrapper = mount(Counter, { propsData: { factor: 10 } }) |
||||
wrapper.vm.inc() |
||||
expect(wrapper.vm.computedCount).toEqual(10) |
||||
}) |
||||
}) |
@ -0,0 +1,37 @@
|
||||
{ |
||||
"name": "testjest", |
||||
"description": "jest", |
||||
"version": "1.0.0", |
||||
"author": "xiangcaibiao", |
||||
"private": true, |
||||
"scripts": { |
||||
"test": "jest --coverage" |
||||
}, |
||||
"dependencies": { |
||||
"vue": "^2.4.4" |
||||
}, |
||||
"jest": { |
||||
"moduleFileExtensions": [ |
||||
"js", |
||||
"vue" |
||||
], |
||||
"moduleNameMapper": { |
||||
"^@/(.*)$": "<rootDir>/src/$1" |
||||
}, |
||||
"transform": { |
||||
"^.+\\.js$": "<rootDir>/node_modules/babel-jest", |
||||
".*\\.(vue)$": "<rootDir>/node_modules/vue-jest" |
||||
}, |
||||
"snapshotSerializers": [ |
||||
"<rootDir>/node_modules/jest-serializer-vue" |
||||
] |
||||
}, |
||||
"devDependencies": { |
||||
"@vue/test-utils": "^1.0.0-beta.30", |
||||
"babel-jest": "^24.9.0", |
||||
"babel-preset-env": "^1.7.0", |
||||
"jest": "^24.9.0", |
||||
"jest-serializer-vue": "^2.0.2", |
||||
"vue-jest": "^3.0.5" |
||||
} |
||||
} |
@ -0,0 +1,34 @@
|
||||
/* |
||||
* Licensed to the Apache Software Foundation (ASF) under one or more |
||||
* contributor license agreements. See the NOTICE file distributed with |
||||
* this work for additional information regarding copyright ownership. |
||||
* The ASF licenses this file to You under the Apache License, Version 2.0 |
||||
* (the "License"); you may not use this file except in compliance with |
||||
* the License. You may obtain a copy of the License at |
||||
* |
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
import { shallowMount } from '@vue/test-utils' |
||||
import Message from '../src/components/Message.vue' |
||||
|
||||
describe('Message', () => { |
||||
it('renders props.msg when passed', () => { |
||||
const msg = 'new message' |
||||
const wrapper = shallowMount(Message, { |
||||
propsData: { msg } |
||||
}) |
||||
expect(wrapper.text()).toBe(msg) |
||||
}) |
||||
|
||||
it('renders default message if not passed a prop', () => { |
||||
const defaultMessage = 'default message' |
||||
const wrapper = shallowMount(Message) |
||||
expect(wrapper.text()).toBe(defaultMessage) |
||||
}) |
||||
}) |
@ -0,0 +1,53 @@
|
||||
/* |
||||
* Licensed to the Apache Software Foundation (ASF) under one or more |
||||
* contributor license agreements. See the NOTICE file distributed with |
||||
* this work for additional information regarding copyright ownership. |
||||
* The ASF licenses this file to You under the Apache License, Version 2.0 |
||||
* (the "License"); you may not use this file except in compliance with |
||||
* the License. You may obtain a copy of the License at |
||||
* |
||||
* http://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
<template> |
||||
<div> |
||||
<div>{{ computedCount }}</div> |
||||
<button @click="inc">加</button> |
||||
<button @click="dec">减</button> |
||||
<button @click="reset">重置</button> |
||||
</div> |
||||
</template> |
||||
|
||||
<script> |
||||
export default { |
||||
props: { |
||||
factor: { type: Number, default: 1 } |
||||
}, |
||||
data() { |
||||
return { |
||||
count: 0 |
||||
}; |
||||
}, |
||||
methods: { |
||||
inc() { |
||||
this.count++; |
||||
}, |
||||
dec() { |
||||
this.count--; |
||||
}, |
||||
reset() { |
||||
this.count = 0; |
||||
} |
||||
}, |
||||
computed: { |
||||
computedCount: function() { |
||||
return this.count * this.factor; |
||||
} |
||||
} |
||||
}; |
||||
</script> |
@ -0,0 +1,28 @@
|
||||
/* |
||||
* Licensed to the Apache Software Foundation (ASF) under one or more |
||||
* contributor license agreements. See the NOTICE file distributed with |
||||
* this work for additional information regarding copyright ownership. |
||||
* The ASF licenses this file to You under the Apache License, Version 2.0 |
||||
* (the "License"); you may not use this file except in compliance with |
||||
* the License. You may obtain a copy of the License at |
||||
* |
||||
* http://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
<template> |
||||
<h1> {{ msg || 'default message' }}</h1> |
||||
</template> |
||||
|
||||
<script> |
||||
export default { |
||||
name: 'message', |
||||
props: [ |
||||
'msg' |
||||
] |
||||
} |
||||
</script> |
Loading…
Reference in new issue