我正在构建一些基础设施来测试一组使用各种金融工具的定价引擎。我的问题是我基本上有3层基础设施,并且不知道以OOP方式组织这个基础设施的最合适方式是什么。
解释我目前的设计:
一个单独的TestClass PricingEngineTests
方法createStuff()
:
A
,B
,C
,...,Z
1
,2
,...,50
为每个相应的定价引擎分别测试TestMethods,其中:
createStuff()
A
与Z
的一些独特组合,并测试金融工具1
至50
以初始化该特定定价引擎的对象现在我的问题是每个测试方法必须调用createStuff()
,这需要一些时间来构建所有A
到Z
和{{1} }} 1
只能使用它每次创建的基础设施的一个小得多的独特子集。这显然是我设计中的一个缺陷。
这种设计结构背后的逻辑是,我可以独立地测试每个定价引擎,而不会在每个相应的测试方法的开头重复大量的基础架构创建代码,只需完全废弃50
。
我知道我的设计很差,但是我不知道如何以面向对象的方式修复它...我怎样才能更有效地构建这个基础设施,以便我可以独立测试每个定价引擎?
答案 0 :(得分:1)
你不能只从createStuff()
方法调用[TestFixtureSetup]
(它的名称将取决于你正在使用的单元测试框架),它只运行一次当前的测试运行,所以减少了从n(其中n是测试次数)到1的初始化量。
显然,这依赖于每个测试的设置都是相同的,但是从你的问题看来应该是这样。