Try the following production code
public abstract class BaseClass
{
public int Version
{
get
{
return 1;
}
}
public string FixString
{
get;
set;
}
public BaseClass()
{
FixString = "hello";
}
}
public class DeriveClass: BaseClass
{
public DeriveClass():base()
{
}
}
And the following test code
[TestFixture]
public class BaseClassTest<T>
where T:BaseClass
{
public T BaseClassObj
{
get;set;
}
}
[TestFixture, Isolated]
public class DeriveClassTest:BaseClassTest<DeriveClass>
{
[Test]
public void Test1()
{
BaseClassObj = new DeriveClass();
Isolate.WhenCalled(() => BaseClassObj.Version)
.WillReturn(5);
Assert.AreEqual("hello", BaseClassObj.FixString);
}
}
The test fails, even though it should pass.
It seems that derived test class with generics will cause problem.