假设我们有这个方法:
bool IsValid()
{
var argument = StaticClass.CurrentArgument;
return argument > 0;
}
它具有检查逻辑是否正常工作的单元测试。但是当方法是从不同的线程中拉取时,这种情况不包括在内。那么,检查线程安全的测试——它更接近于单元测试还是集成测试?此外,如果有适合这种情况的众所周知的其他类型的测试,也很高兴知道。
同意线程安全性好检查,假设在这个方法中直接加锁就可以实现。
在我的理解中,它更接近集成,因为测试的目的不是检查业务逻辑(其验证已经是结果),而是代码在实战条件下的使用。
在回答这个问题时,了解线程安全对业务的重要性可能很重要,即 就业务逻辑而言。而这似乎并没有那么重要。毕竟,例如,锁可以在方法调用之前,IsValid()一切也会正常进行。但另一方面,如果我们在方法契约中明确指出该方法是线程安全的(例如,在方法名称或文档中),我们可能应该在此处将其作为方法的逻辑组件进行测试。