# 單元測試
對于進行單元測試,electron-vue 使用 [Karma](https://karma-runner.github.io/1.0/index.html) 作為測試的運行器,使用 [Mocha](https://mochajs.org/) \(與 [Chai](http://chaijs.com/)\ 作為測試框架。
Mocha 和 Chai 分別使用 `karma-mocha` 和 `karma-chai` 進行集成,所以所有的 API(例如 `expect`)都可以在測試文件中全局使用。
### 運行測試
```bash
# 開始 Karma
npm run unit
```
### 文件結構
```
my-project
├─ test
| ├─ unit
│ │ ├─ specs/
│ │ ├─ index.js
└─ └─ └─ karma.conf.js
```
**在大多數情況下,你可以忽略** `index.js` **和** `karma.conf.js` **,只專注于編寫** `specs/` **。**
#### `specs/`
這個目錄里面是編寫實際測試代碼的地方。由于 Webpack 的強大功能,你可以完全依照 ES2015 和 其支持的加載程序編寫。
#### `index.js`
這是 `karma-webpack` 使用的入口文件。該文件的目的是一次性收集加載所有的測試和源代碼。
#### `karma.conf.js`
在這里,你可以找到實際的 `karma` 配置,并使用 spec/coverage 記錄器進行設置。你可以根據 [karma 官方文檔](http://karma-runner.github.io/1.0/config/configuration-file.html) 進一步定制。
### Mocking Dependencies
electron-vue 默認安裝 [`inject-loader`](https://github.com/plasticine/inject-loader)。有關使用 Vue 組件文件的信息,請參閱 [`vue-loader' 的測試與仿真文檔](http://vue-loader.vuejs.org/en/workflow/testing-with-mocks.html)。