gpt4 book ai didi

unit-testing - 如何对时序逻辑进行单元测试?

转载 作者:行者123 更新时间:2023-12-04 23:34:09 34 4
gpt4 key购买 nike

假设我有以下方法的 Car 类:

  • 加载汽油(IFuel gas)
  • InsertKey(IKey 键)
  • StartEngine()
  • IDrivingSession Go()

  • Car 的目的是配置并返回一个 IDrivingSession,应用程序的其余部分使用它来驱动汽车。如何对我的汽车进行单元测试?

    看起来它需要完成一系列操作才能调用 Go() 方法。但我想分别测试每种方法,因为它们都有一些重要的逻辑。我不想有一堆单元测试,比如
    Test1: LoadGasoline, Assert

    Test2: LoadGasoline, InsertKey, Assert

    Test3: LoadGasoline, InsertKey, StartEngine, Assert

    Test4: LoadGasoline, InsertKey, StartEngine, Go, Assert

    没有更好的方法来对时序逻辑进行单元测试,还是我的汽车设计有问题?

    - - 编辑 - -
    感谢所有的答案。正如许多人注意到的那样,我还应该对无效场景进行测试,我也有这些测试,但这个问题的重点是如何测试有效序列。

    最佳答案

    我认为每种方法都应该单独和独立地进行测试。

    恕我直言,您应该为每种情况准备环境,因此如果您更改 LoadGasoline 方法,只有 LoadGasoline 测试会中断,并且您不需要看到所有测试都因为单个错误而中断。

    我不知道您的 Car 的状态如何,但是,在 InsertKey 之前,您应该准备一个类似 car.SetTotalGasoline(20); 的方法。或此方法中设置的任何变量,但不依赖于方法 LoadGasoline 的复杂逻辑。

    您稍后将需要一个测试(在这种情况下,不是单元测试)来测试所有序列。

    关于unit-testing - 如何对时序逻辑进行单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/965767/

    34 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com