hae-uitest
Version:
A UI Test Framework for Huawei HAE
51 lines (41 loc) • 1.6 kB
JavaScript
//生成断言
var fs = require('fs');
var path = require('path');
var ejs = require('ejs');
module.exports = function(expect, message) {
var assertTmplPath = path.normalize(__dirname + '/../templates/wts-assert.tpl');
var assertTmpl = fs.readFileSync(assertTmplPath, 'utf8');
var reg = /^!?([<>=\^\*\$]+|true$|false$)/g;
var operators = expect.match(reg) || '';
var arrType = ['true', 'false', '=', '<', '>', '<=', '>=', '^=', '*=', '$='];
var expectContent = '';
var expectOperators = ''
var expectValue = '';
var negated = '';
if ('' !== expect && '' !== operators && 1 === operators.length) {
for (var i = 0; i < arrType.length; i++) {
if (operators[0] === arrType[i]) {
expectOperators = arrType[i];
break;
} else if (operators[0] === '!' + arrType[i]) {
expectOperators = '!' + arrType[i];
break;
}
};
if ('' === expectOperators) throw new Error('unexpected assertion expression.');
expectValue = expect.replace(expectOperators, '');
if ('!' === expectOperators.charAt(0)) {
negated = '!';
expectOperators = expectOperators.slice(1);
}
var data = {
negated: negated,
operators: expectOperators,
expect: expectValue,
message: message,
filename: assertTmplPath
};
expectContent = ejs.render(assertTmpl, data);
}
return expectContent;
}