我需要为我们的应用程序运行集成/回归测试套件,并且应用程序应该在一天的不同时间运行不同。我不能改变系统时间,因为其他应用程序依赖于它我想嘲笑DateTime.Now为此目的。但是,当我在主要方法中进行嘲讽时,抛出异常。当我在同一个应用程序的nunit测试中使用模拟时,它工作正常。 typemock只能在单元测试中使用吗?无论如何,我可以运行嘲笑启用解决方案吗? 我通过TMockRunner.exe运行了解决方案,但也遇到同样的问题。集成/回归测试套件中的TypeMock
谢谢!
我看到这个错误,当我运行使用特拉维斯提到 @Travis Illig公司的方法,用于包装的代码是:
class Program
{
static void Main(string[] args)
{
ExpectationsSetup();
ConsoleApplication2.Program.Main(args);
}
public static void ExpectationsSetup()
{
Isolate.WhenCalled(() => DateTime.Now).WillReturn(new DateTime(2010, 1, 2));
}
}
I see the following error:
Unhandled Exception: TypeMock.TypeMockException:
*** No method calls found in recording block. Please check:
* Are you trying to fake a field instead of a property?
* Are you are trying to fake an unsupported mscorlib type? See supported types
here: http://www.typemock.com/mscorlib-types
at gt.a(c0 A_0, Boolean A_1)
at bg.a(Boolean A_0)
at dt.b(Boolean A_0)
at i2.b(Boolean A_0)
at i2.a(Object A_0, Boolean A_1, Func`1 A_2, Action A_3, Action A_4, Action A
_5, Boolean A_6)
at i2.b(Object A_0)
at TypeMock.ArrangeActAssert.ExpectationEngine`1.a(TResult A_0)
at ConsoleApplication2Mock.Program.ExpectationsSetup() in C:\Users\shvenkat\D
ocuments\Visual Studio 2010\Projects\ConsoleApplication2\ConsoleApplication2Mock
\Program.cs:line 22
at ConsoleApplication2Mock.Program.Main(String[] args) in C:\Users\shvenkat\D
ocuments\Visual Studio 2010\Projects\ConsoleApplication2\ConsoleApplication2Mock
\Program.cs:line 14
任何帮助将不胜感激 谢谢!
谢谢特拉维斯!我用了类似的东西。 Mine是一个控制台应用程序,并且我编写了一个包装控制台应用程序,它执行期望设置等级。程序 static void Main(string [] args) ExpectationsSetup(); ConsoleApplication2.Program.Main(args); } public static void ExpectationsSetup() Isolate.WhenCalled(()=> DateTime.Now).WillReturn(new DateTime(2010,1,2)); } }。当我运行TMockRunner时,它会抛出异常。 – user1532105 2012-07-24 20:54:27
您应该更新您的问题以包含异常信息和包装控制台应用程序。很难排除故障或提供没有所有信息的建议。 – 2012-07-24 22:00:09