Change...
exec sp_executesql N'dbo._testproc',N'@testTable [dbo].[TestType] READONLY',@testTable=@x
To...
exec sp_executesql N'dbo._testproc @testTable',N'@testTable [dbo].[TestType] READONLY',@testTable=@x
I tested it, it works. You're passing your variable to the executed command text, but you don't use the variable in your command text.