title: tSQLt failure when attempting to SpyProcedure a synonym SP
body: <p>I am new to tSQLt. I am writing a test for a stored procedure that calls an sp on a different DB. This external SP is set as a synonym in the DB I use. To enhance, this is what I have:</p>
  <ul>
  <li><strong>SP1 on DB1</strong></li>
  <li><strong>SP2 on DB2</strong></li>
  <li><strong>SP1 calls SP2</strong></li>
  <li><strong>DB2.dbo.SP2 defined as a SYN (Synonyms) on DB1</strong></li>
  </ul>
  <p><em><strong>I want to test SP1 without dependency on SP2 results.</strong></em> Therefore I want to use tSQLt.SpyProcedure on SP2, but what I tried so far erred:</p>
  <ul>
  <li><p><strong><code>SpyProcedure @ProcedureName = '[DB2].[dbo].[SP2]'</code></strong> : &quot;(Error) Cannot use SpyProcedure on [DB2].[dbo].[SP2] because the procedure does not exist[16,10]{tSQLt.Private_ValidateProcedureCanBeUsedWithSpyProcedure,8}&quot;</p>
  </li>
  <li><p><strong><code>SpyProcedure @ProcedureName = '[SYN]'</code></strong> : &quot;(Error) Cannot use SpyProcedure on [SYN] because the procedure does not exist[16,10]{tSQLt.Private_ValidateProcedureCanBeUsedWithSpyProcedure,8}&quot;</p>
  </li>
  </ul>
  <p>*** I also tried one less straight-forward solution, but it failed as well:</p>
  <ul>
  <li><strong><code>FakeTable @TableName = sys.procedures</code></strong> the logic behind was to fake the system table, than add the full SP path to it (DB2.dbo.SP2) but this erred - &quot;(Error) FakeTable could not resolve the object name, '[sys.procedures]'. (When calling tSQLt.FakeTable, avoid the use of the @SchemaName parameter, as it is deprecated.)[16,10]{tSQLt.Private_ValidateFakeTableParameters,12}&quot;</li>
  </ul>
  <p>Any ideas? I tried debugging the &quot;private&quot; methods, but so far couldn't figure out a solution.</p>
  <p>Thank you!</p>