软件测试——Calculator测试

Posted Starzkg

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了软件测试——Calculator测试相关的知识,希望对你有一定的参考价值。

源代码:https://gitee.com/shentuzhigang/demo-project/tree/master/test-calculator

测试代码

package io.shentuzhigang.demo.test;

import org.junit.Test;

public class CalculatorTest {

    @Test(timeout = 4000)
    public void test00() throws Throwable {
        Calculator.expParser = new ExpressionParser(3);
        try {
            Calculator.evaluate("x + y");
        } catch (MissingOperandException e) {
            e.getOperator();
            e.printStackTrace();
        }

        Calculator.expParser.addVariable("$","x");

        Calculator.expParser.addVariable("x", "3");
        Calculator.expParser.parseVariables("x");
        Calculator.expParser.addVariable("x", "2");
        Calculator.expParser.evaluate("y = 1");
        try {
            Calculator.expParser.evaluate("y = 1.x");
        }catch (Exception e){
            e.printStackTrace();
        }
    }

    @Test(timeout = 4000)
    public void test01() throws Throwable {
        Calculator.parseCommand("list funcs");
        Calculator.parseCommand("list vars");
        Calculator.parseCommand("list");
        Calculator.parseCommand("help cmds");
        Calculator.parseCommand("help funcs");
        Calculator.parseCommand("help vars");
        Calculator.parseCommand("help");
        Calculator.parseCommand("exit");
        try {
            Calculator.parseCommand("test");
        } catch (CommandNotFoundException e) {
            e.getCommand();
            e.printStackTrace();
        }
    }

    @Test(timeout = 4000)
    public void test02() throws Throwable {
        Calculator.evaluate("1^1");
        Calculator.evaluate("1%1");
        Calculator.evaluate("1/1");
        Calculator.evaluate("1*1.111");
        Calculator.evaluate("1+1");
        Calculator.evaluate("1-(1*1)");
        Calculator.evaluate("(1 - 2 + 3) - 5");

        Calculator.evaluate("sin[1]");
        Calculator.evaluate("cos[1]");
        Calculator.evaluate("tan[1]");
        Calculator.evaluate("csc[1]");
        Calculator.evaluate("sec[1]");
        Calculator.evaluate("ctn[1]");
        Calculator.evaluate("rad[1]");
        Calculator.evaluate("deg[1]");
        Calculator.evaluate("fct[1]");
        Calculator.evaluate("fct[11]");
        Calculator.evaluate("abs[1]");
        Calculator.evaluate("exp[1]");
        Calculator.evaluate("log[1]");

        Calculator.evaluate("-log[1]");
        try {
            Calculator.evaluate("test[1]");
        } catch (FunctionNotFoundException e) {
            e.getFunc();
            e.printStackTrace();
        }
        try {
            Calculator.evaluate("log[]");
        } catch (MissingOperandException e) {
            e.getFaultyExpression();
            e.printStackTrace();
        }
        try {
            Calculator.evaluate("log[");
        } catch (UnmatchedBracketsException e) {
            e.getFaultyExpression();
            e.printStackTrace();
        }
        try {
            Calculator.evaluate("log[(1+1]");
        } catch (UnmatchedBracketsException e) {
            e.getFaultyExpression();
            e.getIndexOfBracket();
            e.printStackTrace();
        }
        try {
            Calculator.evaluate("log[<a>]");
        } catch (VariableNotFoundException e) {
            e.getFaultyExpression();
            e.getVar();
            e.printStackTrace();
        }
    }

    @Test(timeout = 4000)
    public void test03() throws Throwable {
        try {
            Calculator.evaluate("");
        } catch (NullExpressionException e) {
            e.getFaultyExpression();
            e.printStackTrace();
        }
        try {
            Calculator.evaluate("(1+1");
        } catch (UnmatchedBracketsException e) {
            e.getFaultyExpression();
            e.getIndexOfBracket();
            e.printStackTrace();
        }
        try {
            Calculator.evaluate("<a>+<b>");
        } catch (VariableNotFoundException e) {
            e.getFaultyExpression();
            e.getVar();
            e.printStackTrace();
        }
        // fixed
        VariableNotFoundException e = new VariableNotFoundException("x");
    }
}

测试结果

在这里插入图片描述

在这里插入图片描述

参考文章

以上是关于软件测试——Calculator测试的主要内容,如果未能解决你的问题,请参考以下文章

Calculator JUnit测试用例

结对练习

对JAVA代码单元测试

CTS测试CtsWindowManagerDeviceTestCases模块的testShowWhenLockedImeActivityAndShowSoftInput测试fail项解决方法(代码片段

junit框架——单元测试

java之单元测试