创建我的第一个模拟对象时出错
问题描述:
我对此很陌生,所以毫无疑问,我正在做一些愚蠢的事情。创建我的第一个模拟对象时出错
我想创建一个模拟对象:
mockCurrencyConversion = mocks.NewMock<ICurrencyConversion>();
,并收到此错误:
The non-generic method 'NMock2.Mockery.NewMock(System.Type)' cannot be used with type arguments
ICurrencyConversion:
public interface ICurrencyConversion
{
decimal convertCurrency(string fromCurrency, string toCurrency, decimal amount);
int addNumbers(int i, int j);
decimal getRate(CurrencyRateResponse rates, string fromCurrency);
CurrencyRateResponse getCurrencyRates();
HttpWebRequest GetWebRequest(string formattedUri);
}
我的测试代码:
[TestFixture]
public class WhygoTest
{
private Mockery mocks;
private ICurrencyConversion mockCurrencyConversion;
[SetUp]
public void SetUp()
{
mocks = new Mockery();
mockCurrencyConversion = mocks.NewMock<ICurrencyConversion>();
}
[Test]
public void MyAddTest()
{
var cc = new CurrencyConversion();
Assert.AreEqual(cc.addNumbers(1, 2), 3);
}
}
答
使用NewMock()
方法与类型作为参数:
mockCurrencyConversion =
(ICurrencyConversion) mocks.NewMock(typeof(ICurrencyConversion));
+0
感谢您的这一点,我现在得到一个错误 - 不能隐式地将类型'对象'转换为'ICurrencyConversion'。存在明确的转换(您是否缺少演员?) – iKode 2012-02-14 10:12:22
+0
您可以使用我的答案中更新后的代码显式转换为'ICurrencyConversion'。 – 2012-02-14 10:14:51
错误似乎很清楚,我!它说你不能将类型参数传递给该方法,而是它需要一个类型为“System.Type”的参数。你尝试过吗? – 2012-02-14 10:07:27