Javascript 我需要帮助修复我的一个方法的单元测试
我现在正在学习一门课程,我的任务之一就是用vue js创建任何简单的程序,我已经成功地完成了。这是一个带有基本运算符的简单计算器Javascript 我需要帮助修复我的一个方法的单元测试,javascript,unit-testing,vue.js,methods,chai,Javascript,Unit Testing,Vue.js,Methods,Chai,我现在正在学习一门课程,我的任务之一就是用vue js创建任何简单的程序,我已经成功地完成了。这是一个带有基本运算符的简单计算器 <template> <div class="Calculator"> <table cellspacing="10"> <tr> <td colspan="4"> <input type="text" v-model="result"
<template>
<div class="Calculator">
<table cellspacing="10">
<tr>
<td colspan="4">
<input type="text" v-model="result" disabled>
</td>
</tr>
<tr>
<td class="button" @click="addNumber(7)">7</td>
<td class="button" @click="addNumber(8)">8</td>
<td class="button" @click="addNumber(9)">9</td>
<td class="operator" @click="setOperator('*')">x</td>
</tr>
<tr>
<td class="button" @click="addNumber(4)">4</td>
<td class="button" @click="addNumber(5)">5</td>
<td class="button" @click="addNumber(6)">6</td>
<td class="operator" @click="setOperator('-')">-</td>
</tr>
<tr>
<td class="button" @click="addNumber(1)">1</td>
<td class="button" @click="addNumber(2)">2</td>
<td class="button" @click="addNumber(3)">3</td>
<td class="operator" @click="setOperator('+')">+</td>
</tr>
<tr>
<td class="button" @click="addNumber(0)" colspan='2'>0</td>
<td class="button" @click="clear">C</td>
<td class="operator" @click="equal">=</td>
</tr>
</table>
</div>
</template>
<script>
export default {
data: function() {
return {
result: 0,
tmp_value: 0,
reset: false,
operator: undefined
}
},
methods: {
clear() {
this.result = 0;
this.tmp_value = 0;
this.operator = undefined;
return result;
},
addNumber(number) {
if(this.result == 0 || this.reset === true) {
this.result = '';
this.reset = false;
}
this.result += number.toString();
},
setOperator(operator) {
if(this.tmp_value != 0)
this.calculate();
this.tmp_value = this.result;
this.operator = operator;
this.reset = true;
},
equal() {
this.calculate();
this.tmp_value = 0;
this.operator = undefined;
},
calculate() {
let value = 0;
let firstNum = parseFloat(this.tmp_value);
let secondNum = parseFloat(this.result);
switch(this.operator) {
case '+':
value = firstNum + secondNum;
break;
case '-':
value = firstNum - secondNum;
break;
case '*':
value = firstNum * secondNum;
break;
case '/':
value = firstNum / secondNum;
}
this.result = value.toString();
}
}
}
</script>
<style>
.Calculator {
display: flex;
margin: 0 auto;
height: 100vh;
width: 200px;
font-size: 25px;
}
table {
width: 370px;
}
input {
display: block;
text-align: right;
height: 30px;
}
.operator {
background-color: orange;
border: 1px solid gray;
}
.button {
background-color:whitesmoke;
border: 1px solid gray;
}
</style>
我希望测试通过,因为这些方法将结果切换回0。看起来您刚刚输入了一个小错误: 在
clear
中,您返回的是结果
(即未定义
),而不是此结果。结果
:
clear() {
this.result = 0;
this.tmp_value = 0;
this.operator = undefined;
return this.result; // <= return "this.result" instead of "result"
},
clear(){
这个结果=0;
此.tmp_值=0;
this.operator=未定义;
返回此。结果;//看起来您刚刚输入了一个小错误:
在clear
中,您返回的是结果
(即未定义
),而不是此结果。结果
:
clear() {
this.result = 0;
this.tmp_value = 0;
this.operator = undefined;
return this.result; // <= return "this.result" instead of "result"
},
clear(){
这个结果=0;
此.tmp_值=0;
this.operator=未定义;
返回此结果//