gpt4 book ai didi

java - 删除之前定义的 NonStrictExpectations

转载 作者:行者123 更新时间:2023-12-01 13:04:56 31 4
gpt4 key购买 nike

我的 JUnit 测试用例中有这个 NonStrictExpectation:

  new NonStrictExpectations(mCurrencyDao) {
{
invoke(mCurrencyDao, "readSqlQuery", withAny(String.class));
result = prepareTestSQL(pAllKeysForTest);
times = 1;
}
};
mCurrencyDao.loadAll(lToday);

它工作得很好并且达到了预期的结果。现在我已将代码更改为:

  new NonStrictExpectations(mCurrencyDao) {
{
invoke(mCurrencyDao, "readSqlQuery", withAny(String.class));
result = prepareTestSQL(pAllKeysForTest);
times = 1;
}
};
mCurrencyDao.loadAll(lToday);
mCurrencyDao.loadAll(lTomorrow);

第二个调用mCurrencyDao.loadAll(lTomorrow);必须在没有我的NonStrictExpectations的情况下执行。

在调用 mCurrencyDao.loadAll(lToday); 后,是否有一种简单的方法可以删除之前定义的 NonStrictExpectations

最佳答案

您可以使用mockit.Initation类来调用已被Deencapsulation.invoke()模拟的原始方法。以下代码片段在第二个方法调用时委托(delegate)给原始方法。

new NonStrictExpectations(mCurrencyDao) {
{
invoke(mCurrencyDao, "readSqlQuery", withAny(String.class));
result = new Delegate<String>() {
@SuppressWarnings("unused")
String delegate(Invocation invocation) {
if (invocation.getInvocationIndex() == 0) {
return prepareTestSQL(pAllKeysForTest);
} else {
return invocation.proceed();
}
}
};
times = 2;
}
};
mCurrencyDao.loadAll(lToday);
mCurrencyDao.loadAll(lTomorrow);

关于java - 删除之前定义的 NonStrictExpectations,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23341147/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com