Hi,
It is possible to fake the behavior of a generic method.
For example:
public class GenericDefaultValueResolver
{
public T ReturnsDefault<T>()
{
return default(T);
}
}
[TestClass]
public class GenericDefaultValueResolverTests
{
[TestMethod]
public void GenericMethodTest()
{
var genericResolver = Isolate.Fake.Instance<GenericDefaultValueResolver>();
Isolate.WhenCalled(() => genericResolver.ReturnsDefault<string>()).WillReturn("1");
Isolate.WhenCalled(() => genericResolver.ReturnsDefault<int>()).WillReturn(1);
var intValue = genericResolver.ReturnsDefault<int>();
var stringValue = genericResolver.ReturnsDefault<string>();
Assert.AreEqual(1, intValue);
Assert.AreEqual("1", stringValue);
}
}
As to the issue with Unity - it's a case which requires further invastigation and will be resolved in the near future.
Best Regards,
Elisha
Typemock Support Team