我目前正在编写单元测试来测试客户端和服务器之间的连接。目前,我有以下测试; isConnectionSuccessful,isDisconnectionSuccesful和isReconnectionSuccesful。
为了减少重复,我为连接的客户端创建了一个吸气剂。当getter测试客户端是否已连接时,我决定也要在isConnectionSuccesful中对其进行调用,但这意味着不必要地返回了客户端。但是对于其他测试,这种方法似乎非常适合。
使用这种方法是否可以,并且只是不为isConnectionSuccessful分配getter的值,或者这是设计缺陷吗?
为了澄清我有以下测试/方法:
isConnectionSuccessful
//call getConnectedClient
isDisconnectionSuccessful
//call getConnectedClient and assign it
//disconnect logic....
isReconnectionSuccessful
//call getConnectionClient and assign it
//disconnect
//reconnect
getConnectedClient
//instantiate client
//check it is connected
//return client
最佳答案
我认为您在这里谈论单元测试设计。如果是这样,则测试遵循的规则与主要来源的规则有所不同。测试的主要目标是使测试易于理解并提供“安全网”以支持对其测试代码的更改。要将这些目标应用于您的问题,对于读者来说,getConnectedClient
会进行连接检查可能不是立即显而易见的,因此,这是isConnectionSuccessful
测试中唯一需要做的事情。这可能是编写不同测试的理由。另一方面,如果您觉得测试更容易理解它的方式,那么也许您只需要将getConnectedClient
的名称更改为connectClientAndVerifyConnection
。