Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/441.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我需要帮助修复我的一个方法的单元测试_Javascript_Unit Testing_Vue.js_Methods_Chai - Fatal编程技术网

Javascript 我需要帮助修复我的一个方法的单元测试

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"

我现在正在学习一门课程,我的任务之一就是用vue js创建任何简单的程序,我已经成功地完成了。这是一个带有基本运算符的简单计算器

    <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=未定义;
返回此结果//