0

我目前正在编写单元测试来测试客户端和服务器之间的连接。目前我有以下测试;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
4

1 回答 1

1

我认为您在这里谈论的是单元测试设计。如果是这样,测试遵循与主要来源有些不同的规则。您在测试中的主要目标是使测试易于理解并提供“安全网”来支持对其测试代码的更改。要将这些目标应用于您的问题,对getConnectedClient进行连接检查的读者来说可能不会立即显而易见,因此是测试中唯一需要的isConnectionSuccessful。这可能是以不同方式编写该测试的论据。另一方面,如果您觉得测试更容易理解它的方式,那么也许您只需将名称更改为getConnectedClient类似connectClientAndVerifyConnection.

于 2012-05-12T15:34:46.180 回答