我目前正在编写单元测试来测试客户端和服务器之间的连接。目前我有以下测试; isConnectionSuccessful,isDisconnectionSuccesful,isReconnectionSuccesful。
为了尝试减少重复,我为连接的客户端创建了一个getter。当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
答案 0 :(得分:1)
我认为你在谈论单元测试设计。如果是这样,测试遵循与主要来源不同的规则。您在测试中的主要目标是使测试易于理解,并提供“安全网”以支持对其测试的代码的更改。要将这些目标应用于您的问题,读者可能不会立即明白getConnectedClient
进行连接检查,因此是isConnectionSuccessful
测试中唯一需要的内容。这可能是以不同方式编写测试的论据。另一方面,如果您觉得测试更容易理解,那么您可能只需要将getConnectedClient
的名称更改为connectClientAndVerifyConnection
。