2012-08-17 289 views
1

我必须找到并解决一个包含循环依赖的问题,我要么在所涉及的对象之间存储不透明指针,要么在较高级别上使用单独的类来实现对象之间的关系。循环依赖测试

所以我想到了一个简单的问题,我有两个班级,银行和帐户应该做的。银行包含一个包含账户的列表,该账户包含一个指向其银行的指针。实现循环依赖。

但是还有另外一个条件,我必须确定哪些是我必须确保它们之间的类和关系可以独立于彼此进行测试。

银行类使用的功能在帐户上做东西,例如在它们之间转移资金,提取或增加资金。该帐户包含编辑其变量的类似功能。

测试帐户类很容易实例化类和测试函数,但我如何测试依赖于独立于依赖另一个类的类? 你如何测试两个类之间的关系?

我很难找到关于循环依赖关系的信息,除了您应该避免它们,但是在较大的项目中它们可能很难避免。

+0

这功课吗? – 2012-08-17 15:01:03

+0

可能dupclicate http://stackoverflow.com/q/10463001/819272 – TemplateRex 2012-08-17 15:12:39

回答

0

重要的问题是为什么账户需要知道哪家银行拥有它?很难想象一个帐户上的操作需要这些信息不会更好地完成作为涉及银行的操作。例如,将资金从一个账户转移到另一个账户通常涉及A银行将账户AA中的资金转移到B银行,B银行然后将账户添加到B账户。

也许你需要删除依赖关系,然后找出没有它的“不可能”,然后重新考虑你正在尝试做什么,或者用银行的方式重新考虑它,而不是考虑做什么银行。

0

考虑写一个精简版的帐户

例如,

class Account 
{ 
    public: 
     bool failDebit; 
     bool Debit(unsigned int quid) { return failDebit;} 
} 

然后,你可以通过设置failDebit首先为这两种情况下测试您Bank类。然后,如果在Bank中使用更多复杂函数并使用类似方法测试Bank类中的所有可能性,则可以使其更复杂。 Account类可以非常简单,只是模仿返回值。

NB这有点简单,因为可能需要考虑各种函数调用之间的依赖关系(无双关语)。