@@ -30,21 +30,27 @@ public AddTestModuleCommand(IVBE vbe, RubberduckParserState state, IGeneralConfi
3030 }
3131
3232 private const string FolderAnnotation = "'@Folder(\" Tests\" )\r \n " ;
33- private const string ModuleLateBinding = "Private Assert As Object\r \n " ;
34- private const string ModuleEarlyBinding = "Private Assert As New Rubberduck.{0}AssertClass\r \n " ;
33+ private const string AssertLateBinding = "Private Assert As Object" ;
3534
36- private const string TestModuleEmptyTemplate = "'@TestModule\r \n {0}\r \n {1}\r \n " ;
35+ private const string ModuleFakesProvider = "Private Fakes As {0}" ;
36+ private const string AssertEarlyBinding = "Private Assert As Rubberduck.{0}AssertClass" ;
3737
38- private const string ModuleInitLateBinding = "Set Assert = CreateObject(\" Rubberduck.{0}AssertClass\" )\r \n " ;
38+ private const string TestModuleEmptyTemplate = "'@TestModule\r \n {0}\r \n {1}\r \n {2}\r \n \r \n " ;
39+
40+ private const string ModuleInitLateBinding = "Set Assert = CreateObject(\" Rubberduck.{0}AssertClass\" )" ;
3941 private readonly string _moduleInit = string . Concat (
40- "'@ModuleInitialize\r \n "
41- , "Public Sub ModuleInitialize()\r \n "
42- , " '" , RubberduckUI . UnitTest_NewModule_RunOnce , ".\r \n {0}\r \n "
43- , "End Sub\r \n \r \n "
44- , "'@ModuleCleanup\r \n "
45- , "Public Sub ModuleCleanup()\r \n "
46- , " '" , RubberduckUI . UnitTest_NewModule_RunOnce , ".\r \n "
47- , "End Sub\r \n \r \n "
42+ "'@ModuleInitialize\r \n " ,
43+ "Public Sub ModuleInitialize()\r \n " ,
44+ $ " '{ RubberduckUI . UnitTest_NewModule_RunOnce } .\r \n ",
45+ " {0}\r \n " ,
46+ " {1}\r \n " ,
47+ "End Sub\r \n \r \n " ,
48+ "'@ModuleCleanup\r \n " ,
49+ "Public Sub ModuleCleanup()\r \n " ,
50+ $ " '{ RubberduckUI . UnitTest_NewModule_RunOnce } .\r \n ",
51+ " Set Assert = Nothing\r \n " ,
52+ " Set Fakes = nothing\r \n " ,
53+ "End Sub\r \n \r \n "
4854 ) ;
4955
5056 private readonly string _methodInit = string . Concat (
@@ -63,18 +69,30 @@ public AddTestModuleCommand(IVBE vbe, RubberduckParserState state, IGeneralConfi
6369 private string GetTestModule ( IUnitTestSettings settings )
6470 {
6571 var assertClass = settings . AssertMode == AssertMode . StrictAssert ? string . Empty : "Permissive" ;
66- var moduleBinding = settings . BindingMode == BindingMode . EarlyBinding
67- ? string . Format ( ModuleEarlyBinding , assertClass )
68- : ModuleLateBinding ;
6972
70- var formattedModuleTemplate = string . Format ( TestModuleEmptyTemplate , FolderAnnotation , moduleBinding ) ;
73+ bool isEarlyBinding = settings . BindingMode == BindingMode . EarlyBinding ;
74+ var moduleBinding = isEarlyBinding
75+ ? string . Format ( AssertEarlyBinding , assertClass )
76+ : AssertLateBinding ;
77+ var moduleFakes = string . Format ( ModuleFakesProvider , isEarlyBinding
78+ ? "Rubberduck.IFakesProvider"
79+ : "Object" ) ;
80+
81+ var formattedModuleTemplate = string . Format ( TestModuleEmptyTemplate , FolderAnnotation , moduleBinding , moduleFakes ) ;
7182
7283 if ( settings . ModuleInit )
7384 {
74- var lateBindingString = string . Format ( ModuleInitLateBinding ,
75- settings . AssertMode == AssertMode . StrictAssert ? string . Empty : "Permissive" ) ;
85+ var assertLateBindingString = string . Format ( ModuleInitLateBinding , assertClass ) ;
86+ var assertEarlyBindingString = "Set Assert = New Rubberduck.AssertClass" ;
87+
88+ const string rdFakes = "Rubberduck.FakesProvider" ;
89+ var fakesEarlyBindingString = $ "New { rdFakes } ";
90+ var fakesLateBindingString = $ "CreateObject({ rdFakes } )";
7691
77- formattedModuleTemplate += string . Format ( _moduleInit , settings . BindingMode == BindingMode . EarlyBinding ? string . Empty : lateBindingString ) ;
92+ formattedModuleTemplate += string . Format ( _moduleInit ,
93+ isEarlyBinding ? assertEarlyBindingString : assertLateBindingString ,
94+ string . Format ( "Set Fakes = {0}" , isEarlyBinding ? fakesEarlyBindingString : fakesLateBindingString )
95+ ) ;
7896 }
7997
8098 if ( settings . MethodInit )
0 commit comments