【问题标题】:Creating reusable infrastructure for repeated testing - what OOP concept am I missing?为重复测试创建可重用的基础架构——我缺少什么 OOP 概念?
【发布时间】:2016-01-20 09:01:52
【问题描述】:

我正在构建一些基础架构来测试一组使用各种金融工具的定价引擎。我的问题是我基本上有 3 层基础设施,并且不知道以 OOP 方式组织这个基础设施的最合适的方式是什么。

解释我目前的设计:

  • 一个单独的TestClass PricingEngineTests

    • 方法createStuff()其中:

      • 初始化一些测试工具对象A,B,C,...,Z
      • 这些测试对象以各种独特组合作为参数传递,以初始化测试金融工具对象1,2, ..., 50
    • 为每个相应的定价引擎提供单独的测试方法,其中:

      • 致电createStuff()
      • 使用测试工具对象AZ 和金融工具150 的独特组合来初始化特定定价引擎的对象
      • 随后使用创建的定价引擎对象对相应定价引擎的方法执行测试

现在我的问题是每一个测试方法都必须调用createStuff(),这需要一些时间来构建所有AZ150只到每次都使用它创建的基础架构的一些更小的独特子集。对我来说,这显然是我设计中的一个缺陷。

这种设计结构背后的逻辑是,我可以相互独立地测试每个定价引擎,而无需通过完全废弃 createStuff() 在每种测试方法的开头重复大量创建基础设施的代码。

我知道我的设计很差,但是我不知道如何以面向对象的方式修复它……我怎样才能更有效地构建这个基础架构,以便我可以独立测试每个定价引擎?

【问题讨论】:

    标签: c# oop


    【解决方案1】:

    您不能只从 [TestFixtureSetup] 方法调用 createStuff()(它的名称将取决于您使用的单元测试框架),该方法仅在当前测试运行中运行一次,因此减少了从n(其中 n 是测试次数)到 1。

    显然,这依赖于每次测试的设置都相同,但从您的问题看来,它应该是。

    【讨论】:

    • 我对 C# 不是很熟悉,我知道它一定很简单……这正是我所需要的。非常感谢。
    猜你喜欢
    • 2018-10-05
    • 2019-03-27
    • 2013-12-22
    • 1970-01-01
    • 1970-01-01
    • 2012-05-28
    • 1970-01-01
    • 2011-06-18
    • 1970-01-01
    相关资源
    最近更新 更多