浏览代码

增加单元测试

宋成林 7 年之前
父节点
当前提交
b42bc30720

+ 1 - 1
package.json

@@ -24,7 +24,7 @@
     "build": "npm run build:prod && npm run build:prodmin && npm run build:disp",
     "eslint": "eslint src/packages/**/*.{js,vue}",
     "add": "node scripts/createCptTpl.js",
-    "test": "cross-env NODE_ENV=test nyc --reporter=lcov --reporter=text  mocha-webpack --webpack-config build/webpack.test.conf.js --require test/setup.js src/packages/tab/__test__/**.spec.js",
+    "test": "cross-env NODE_ENV=test nyc --reporter=lcov --reporter=text  mocha-webpack --webpack-config build/webpack.test.conf.js --require test/setup.js src/packages/picker/__test__/**.spec.js",
     "coveralls": "cat ./coverage/lcov.info | coveralls",
     "test:watch": "npm run test --watch"
   },

+ 57 - 0
src/packages/actionsheet/__test__/actionsheet.spec.js

@@ -0,0 +1,57 @@
+import { shallowMount, mount } from '@vue/test-utils'
+import ActionSheet from '../actionsheet.vue'
+import Vue from 'vue';
+
+
+describe('ActionSheet.vue', () => {
+    const wrapper = shallowMount(ActionSheet, {
+        propsData:{
+            menuItems: [
+                {
+                    'name': '男',
+                    'value': 0
+                },
+                {
+                    'name': '女',
+                    'value': 1
+                }
+            ]
+        }
+    });
+
+    it('测试条数', () => {
+        return Vue.nextTick().then(function () {
+            expect(wrapper.findAll('.nut-actionsheet-item').length).toBe(2);
+        })
+    });
+
+    it('是否可见', () => {
+        wrapper.setProps({isVisible: true });
+        return Vue.nextTick().then(function () {
+            expect(wrapper.find('.nut-actionsheet-mask').isVisible()).toBe(true);
+            expect(wrapper.find('.nut-actionsheet-panel').isVisible()).toBe(true);
+        })
+    });
+
+    it('显示取消', () => {
+        wrapper.setProps({isVisible: true, cancelTxt: '取消' });
+        return Vue.nextTick().then(function () {
+            expect(wrapper.find('.nut-actionsheet-cancel').isVisible()).toBe(true);
+            expect(wrapper.find('.nut-actionsheet-cancel').text()).toBe('取消');
+        })
+    });
+
+    it('高亮显示', () => {
+        wrapper.setProps({chooseTagValue: '男' });
+        return Vue.nextTick().then(function () {
+            expect(wrapper.findAll('.nut-actionsheet-item').at(0).contains('.nut-actionsheet-item-active')).toBe(true);
+        })
+    });
+
+    it('设置列表项展示使用参数', () => {
+        wrapper.setProps({optionTag: 'value' });
+        return Vue.nextTick().then(function () {
+            expect(wrapper.findAll('.nut-actionsheet-item').at(1).text()).toBe('1');
+        })
+    });
+});

+ 0 - 29
src/packages/actionsheet/_test_/actionsheet.spec.js

@@ -1,29 +0,0 @@
-import { shallowMount, mount } from '@vue/test-utils'
-import Rating from '../actionsheet.vue'
-import Vue from 'vue';
-
-
-describe('actionsheet.vue', () => {
-    const wrapper = shallowMount(Rating, {
-        propsData: {
-        }
-    });
-
-    it('可见', () => {
-        wrapper.setProps({visible: true });
-
-        return Vue.nextTick().then(function () {
-            expect(wrapper.isVisible()).toBe(true);
-        })
-    });
-
-
-    it('点击mask关闭', () => {
-        wrapper.setProps({isClickCloseMask: true });
-        wrapper.findAll('.nut-actionsheet-mask').at(1).trigger('click');
-        return Vue.nextTick().then(function () {
-            expect(wrapper.isVisible()).toBe(false);
-        })
-    });
-
-});

src/packages/calendar/_test_/calendar.spec.js → src/packages/calendar/__test__/calendar.spec.js


src/packages/datepicker/_test_/datapicker.spec.js → src/packages/datepicker/__test__/datapicker.spec.js


+ 44 - 0
src/packages/picker/__test__/picker.spec.js

@@ -0,0 +1,44 @@
+// import { shallowMount, mount } from '@vue/test-utils'
+// import Picker from '../picker.vue'
+// import Vue from 'vue';
+
+
+// describe('Picker.vue', () => {
+//     const wrapper = shallowMount(Picker, {
+//         propsData:{
+//             listData: [
+//                 ['2019', '2020', '2021', '2022', '2023' ],
+//                 ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12']
+//             ],
+//         }
+//     });
+
+//     it('测试条数', () => {
+//         return Vue.nextTick().then(function () {
+//             expect(wrapper.findAll('.nut-picker-list').length).toBe(2);
+//         })
+//     });
+
+//     it('是否可见', () => {
+//         wrapper.setProps({isVisible: true });
+//         return Vue.nextTick().then(function () {
+//             expect(wrapper.find('.nut-actionsheet-mask').isVisible()).toBe(true);
+//             expect(wrapper.find('.nut-actionsheet-panel').isVisible()).toBe(true);
+//         })
+//     });
+
+//     it('标题', () => {
+//         wrapper.setProps({title: '选择年月' });
+//         return Vue.nextTick().then(function () {
+//             expect(wrapper.find('.nut-picker-title').text()).toBe('选择年月');
+//         })
+//     });
+
+//     it('设置默认值', () => {
+//         wrapper.setProps({defaultValueData: ['2020', '2'] });
+//         return Vue.nextTick().then(function () {
+//             expect(wrapper.findAll('.nut-picker-list-panel').at(0).attributes('style')).toBe('transform: translateY(-72px);');
+//             expect(wrapper.findAll('.nut-picker-list-panel').at(1).attributes('style')).toBe('transform: translateY(-36px);');
+//         })
+//     });
+// });

+ 0 - 0
src/packages/picker/_test_/picker.spec.js