我有一个正在做一个非常特定的工作的类:实例化一个对象并确保该对象被放置在它创建的同一个线程上(我有一些需要这种行为的锁,但这不是主题)。
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
不会一直停留在此。
答案 0 :(得分:0)
无需完整的模拟。只需创建一个用于测试的类,它会抛出它的构造函数和
Assert.That(
() => ManagedLifeCycleObjectInstantiator.Instantier<MyType>(),
Throws.TypeOf<MyException>());
对于线程测试,它不清楚你想要测试什么。如果你把它放在错误的线程上会发生什么?