如何在计算器程序中应用断言方法?

How can I apply method assert in a calculator program?

我做了一个计算器。现在我必须使计算器遵循 类 和功能,以便稍后我可以对其应用 assert 方法。这是类之后的计算器程序,功能正常,但不会应用assert方法。

不知道是计算器程序出错了,还是我看不懂

谢谢!

class Calculator:
    """Create your own calculator."""

    def __init__(self, num1, num2):
        """Ask the numbers with which we are going to operate."""
        self.num1 = int(num1)
        self.num2 = int(num2)

    def sums(self):
        """Perform the sum operation."""
        summ = self.num1 + self.num2
        print("The result of the sum is: ", sum)
        return sum

    def subtracts(self):
        """Perform the subtract operation."""
        sub = self.num1 - self.num2
        print("The result of the subtraction is: ", subtract)
        return subtract

    def multiply(self):
        """Perform the multiply operation."""
        mult = self.num1 * self.num2
        print("The result of the multiplication is: ", mult)
        return mult

    def divide(self):
        """Perform the divide operation."""
        div = self.num1 / self.num2
        print("The result of the division is: ", div)
        return div
----------------------------
import unittest
from calculator_poo import Calculator


class TestCalculadora(unittest.TestCase):
    """Tests for 'calculator_poo.py'"""

    def test_multiply(self):
        """works?"""
        fx = multiply()
        self.assertEqual(f("3*5')


unittest.main()

我认为你应该这样做

class TestCalculadora(unittest.TestCase):
    """Tests for 'calculator_poo.py'"""

    def test_multiply(self):
        """works?"""
        fx = Calculator(3,5).multiply()
        self.assertEqual(fx, 3*5)

给出第二个答案,因为前一个没有详细说明代码的作用

您给出的测试class 的声明看起来不错,但是代码中 assertEqual 的使用不正确。 assertEqual(val1, val2) 需要 2 个值/对象并测试它们是否相等。还有其他断言函数可以检查您想要的任何内容(有关可能断言的详细列表,请参阅 https://docs.python.org/3/library/unittest.html#test-cases)。

为了使用 assertEqual(),您首先必须创建一个计算器对象,在该对象上执行测试(这是因为您的计算器 class 使用 class 变量 num1 和 num2 ). 然后,您可以将该计算器的乘法函数的结果与预期输出进行比较:

def test_multiply(self):
    self.assertEqual(Calculator(3,5).multiply(), 15)
    cal = Calculator(3, 5)
    self.assertEqual(cal.multiply(), 15)

请注意,您可以内联初始化计算器对象并直接使用它(第一行)或在本地范围内显式声明它(第 2 和 3 行)。后者在这里没有实际用处,因为您的计算器绑定到它初始化时使用的数字。

您现在可以为计算器的其他功能添加更多测试功能class。

回到 sum 关键字:您还需要将 return 和打印语句更新为新变量名称。