如何断言错误消息等于某个char表达式

时间:2018-01-29 09:18:44

标签: c++ unit-testing exception-handling

我正在尝试从测试类中的WhilePrintingRecords; Not booleanVar ItemThreeFound; 类调用函数。 如何断言Calculator抛出的异常消息等于我期望的异常消息?

我的计算器代码:

Calculator

这是我的测试类:

void Calculator::add() {
    if (_stack.empty()) {
        throw std::runtime_error("empty stack");
    }
    else if (_stack.size() == 1) {
        throw std::runtime_error("Wrong Value");
    }
    else if (_stack.size() > 2) {
        throw std::runtime_error("Wrong Value");
    }
    else {
        double res = this->pop() + this->pop();
        this->push(res);
    }
}

它不起作用的原因:lambda函数返回的值的类型为TEST_METHOD(should_throw_error_if_stack_is_empty) { Assert::AreEqual([] { Calculator* myCalculator = new Calculator(); try { myCalculator->add(); } catch (std::runtime_error const& ex) { return (ex.what()); } }, "empty stack"); } ,而我的表达式类型为const char*。我该怎么办?

我一般遵循良好做法的方法吗?我的意思是在单元测试中捕获类抛出的异常?

0 个答案:

没有答案