Lo que quiere hacer en una prueba unitaria es asegurarse de que el método hace el trabajo que se supone que debe hacer. Si el método usa dependencias para realizar su trabajo, se burlaría de esas dependencias y se aseguraría de que su método invoque los métodos en los objetos de los que depende con los argumentos apropiados. De esta manera, prueba tu código de forma aislada.
Uno de los beneficios de esto es que impulsará el diseño de su código en una mejor dirección. Para usar el burlarse, por ejemplo, usted gravita naturalmente hacia un código más desacoplado usando la inyección de dependencia.Esto le da la capacidad de sustituir fácilmente sus objetos simulados por los objetos reales de los que depende su clase. También terminas implementando interfaces, que se burlan más naturalmente. Ambas cosas son buenos patrones de diseño y mejorarán tu código.
Para probar su ejemplo particular, por ejemplo, puede hacer que su clase dependa de una fábrica para crear conexiones a la base de datos y un constructor para construir comandos SQL parametrizados que se ejecutan a través de la conexión. Pasaría estas versiones falsas de estos objetos a su clase y se aseguraría de que se invocaron los métodos correctos para configurar la conexión y el comando, construir el comando correcto, ejecutarlo y cortar la conexión. O tal vez, usted inyecta una conexión ya abierta y simplemente crea el comando e invoca. El punto es que su clase está construida contra una interfaz o un conjunto de interfaces, y utiliza burlas para suministrar objetos que implementan esas interfaces y puede registrar invocaciones y proporcionar valores de retorno correctos a los métodos que espera usar de la (s) interfaz (es).