第 3 步:测试您的第一个 Python 应用程序 |
您所在的位置:网站首页 › python右键 › 第 3 步:测试您的第一个 Python 应用程序 |
请记住,在第一个教程中您已经创建了您的第一个 Python 应用程序,而在第二个教程中您已经调试了它。现在是时候进行一些测试了。让我们修改代码示例brake的方法: def 刹车(self): self.speed -= 5 选择测试运行器PyCharm 自动检测安装在Python 解释器上的测试运行程序,并使用它来运行测试。如果没有安装特定的测试运行器,PyCharm 使用unittest。 要在项目设置中明确设置所需的测试运行器,请按Ctrl+Alt+S打开 IDE 设置并选择工具 | Python Integrated Tools,然后从默认测试运行程序列表中选择目标测试运行程序。 ![]() 有关更多详细信息,请参阅测试框架。 创建测试创建测试的一种快速方法是让 PyCharm 从我们要测试的类中将它们存根。为此,我们需要打开Car.py,然后右键单击类的名称,指向Go To,然后选择Test(或只需按Ctrl+Shift+T): ![]() 出现一个弹出窗口,建议创建一个新测试: ![]() 好的,让我们一起做。我们将测试我们的汽车是否能够加速和制动,所以让我们选中这些复选框: ![]() 创建了一个新的 Python 测试类: ![]() 您可以为测试创建运行/调试配置并运行它。 ![]() ![]() 现在我们知道我们可以运行测试了,让我们开始编写一些实际的测试代码。 写作测试如何编写单元测试超出了本文的范围。如果您有兴趣了解如何使用 `unittest` 框架,可以查看他们的文档。 对于我们的示例,让我们使用这些测试: 从 Car 导入 unittest 导入 Car 类 TestCar(unittest.TestCase): def setUp(self): self.car = Car() class TestInit(TestCar): def test_initial_speed(self): self.assertEqual(self.car.speed, 0 ) def test_initial_odometer(self): self.assertEqual(self.car.odometer, 0) def test_initial_time(self): self.assertEqual(self.car.time, 0) class TestAccelerate(TestCar): def test_accelerate_from_zero(self): self .car.accelerate() self.assertEqual(self.car.speed, 5) def test_multiple_accelerates(self): for _ in range(3): self.car.accelerate() self.assertEqual(self.car.speed, 15 ) 类 TestBrake(TestCar): def test_brake_once(self): self.car.accelerate() self.car.brake() self.assertEqual(self.car.speed, 0) def test_multiple_brakes(self): for _ in range(5): self.car.accelerate() for _ in range(3): self.car.brake() self.assertEqual( self.car.speed, 10) def test_should_not_allow_negative_speed(self): self.car.brake() self.assertEqual(self.car.speed, 0) def test_multiple_brakes_at_zero(self): for _ in range(3): self.car .brake() self.assertEqual(self.car.speed, 0)self.car.brake() self.assertEqual(self.car.speed, 0) def test_multiple_brakes_at_zero(self): for _ in range(3): self.car.brake() self.assertEqual(self.car.speed, 0)self.car.brake() self.assertEqual(self.car.speed, 0) def test_multiple_brakes_at_zero(self): for _ in range(3): self.car.brake() self.assertEqual(self.car.speed, 0) 运行测试现在通过右键单击类声明上方的编辑器背景来运行测试test_car。这次成功通过了一些测试: ![]() 接下来,让我们更深入地研究测试代码并调试其中一个失败的测试。例如,我们将在以下位置放置一个断点: ![]() 接下来,启动调试器会话。为此,请右键单击方法的编辑器背景并从上下文菜单中test_should_not_allow_negative_speed选择“调试 ![]() 我们已经在方法的self.car.brake()语句处放置了断点test_should_not_allow_negative_speed。让我们看看调试器的输出: ![]() 单击 ![]() 接下来, ![]() 它表明速度可以变成负数,这是不可能的。似乎在类的代码中需要进行一些额外的检查Car: 改变方法brake如下: def 刹车(self): 如果 self.speed < 5: self.speed = 0 else: self.speed -= 5现在让我们再次运行测试: ![]() 在最后一段中,在修复了我们的代码之后,我们使用 单击运行工具栏 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |