magic-core
Version:
59 lines (53 loc) • 1.05 kB
JavaScript
class TestCase {
constructor(conf = {}) {
Object.assign(this, {
name: null,
remark: null,
condition: null,
tags: [],
template: null,
data: null,
counter: 0,
}, conf)
}
/**
* 是否满足条件
* @param {*} params
*/
accept(params) {
if (this.condition) {
return this.condition(params)
}
return true
}
produce(params, conf) {
const {
__useTemplate__ = false,
} = params
if (__useTemplate__) {
if (this.template) {
return Mock.mock(this.template)
} else {
return {
success: false,
error: new Error('模板不存在')
}
}
} else {
console.info(`${this.id} produce ${this.counter}`)
return this.data
}
}
/**
* 生成testcase
* @param {*} json
*/
static fromJSON(json) {
const tc = new TestCase(json)
if (json.condition) {
tc.condition = new Function('params', 'conf', json.condition)
}
return tc
}
}
export default TestCase