模拟一个应该在MoQ构造函数中执行操作的对象

时间:2016-09-21 13:34:44

标签: c# .net nunit moq

我有一个正在做一个非常特定的工作的类:实例化一个对象并确保该对象被放置在它创建的同一个线程上(我有一些需要这种行为的锁,但这不是主题)。

ManagedLifeCycleObjectInstantier<SomeType> myInstance = ManagedLifeCycleObjectInstantier<SomeType>.Instantiate()){
myInstance.InstantiatedObject //Here my instantiated object is available

//Some other thread calls
//Then when the instantier is disposed, it ensure that the instance also get disposed, but on the correct thread.
myInstance.Dispose();

我想UnitTest我的ManagedLifeCycleObjectInstantier,我的一个例子是SomeType的构造函数抛出异常,我要确保收到此异常,并且ManagedLifeCycleObjectInstantier不会一直停留在此。

1 个答案:

答案 0 :(得分:0)

无需完整的模拟。只需创建一个用于测试的类,它会抛出它的构造函数和

Assert.That(
    () => ManagedLifeCycleObjectInstantiator.Instantier<MyType>(),
    Throws.TypeOf<MyException>());

对于线程测试,它不清楚你想要测试什么。如果你把它放在错误的线程上会发生什么?