我想通过mockito验证验证方法是否被调用两次或多次.我使用验证,它抱怨像这样:
org.mockito.exceptions.verification.TooManyActualInvocations:
Wanted 1 time:
But was 2 times. Undesired invocation:
Run Code Online (Sandbox Code Playgroud) 我正在尝试验证在DAO中调用(void)方法 - 我正在使用一个提交点,该提交点将结果列表发送到该点,重置列表并继续.假设我在列表中有4个东西,并且我的提交点为1,我希望"send"方法被调用4次.我可以通过编写来验证该方法是否被调用一次
Mockito.verify(mock).send()
它通过..但我想验证它被调用的次数.我想是的
Mockito.verify(mock.send(), times(4))
就足够了,但它说参数不正确验证.
顺便说一句,如果我 Mockito.verify(mock).send()改为 Mockito.verify(mock.send())或者 Mockito.verify((mock).send())我得到同样的错误.对此的想法?
当我下载GCC时,它也有一个.sig文件,我认为它是为了验证下载的文件而提供的.(我从这里下载了GCC ).
但我无法弄清楚我应该如何使用它.我试过gpg,但它抱怨公钥.
[root@localhost src]# gpg --verify gcc-4.7.2.tar.gz.sig gcc-4.7.2.tar.gz
gpg: Signature made Thu 20 Sep 2012 07:30:44 PM KST using DSA key ID C3C45C06
gpg: Can't check signature: No public key
[root@localhost src]#
Run Code Online (Sandbox Code Playgroud)
如何使用.sig文件验证下载的文件?
如果需要设置返回值,以及验证调用表达式的次数,可以在一个语句中执行此操作吗?
从我可以收集到的,Moq的Setup(SomeExpression).Verifiable()调用Verify(),基本上是一个Verify(SomeExpression, Times.AtLeastOnce)?即它验证表达式只被调用.
这是一个更好地解释问题的例子.对于接口:
interface IFoo
{
int ReturnSomething();
}
Run Code Online (Sandbox Code Playgroud)
以下两个块是否等效(除了第一个将验证标记为可验证的所有设置)?
void Test()
{
var mock = new Mock<IFoo>();
mock.Setup((m) => m.ReturnSomething()).Returns(1).Verifiable();
mock.Verify();
}
Run Code Online (Sandbox Code Playgroud)
和
void Test()
{
var mock = new Mock<IFoo>();
mock.Setup((m) => m.ReturnSomething()).Returns(1);
mock.Verify((m) => m.ReturnSomething(), Times.AtLeastOnce());
}
Run Code Online (Sandbox Code Playgroud)
如果我想验证调用次数(比如两次),这是唯一的方法,其中表达式重复进行安装和验证吗?
void Test()
{
var mock = new Mock<IFoo>();
mock.Setup((m) => m.ReturnSomething()).Returns(1);
mock.Verify((m) => m.ReturnSomething(), Times.Exactly(2));
}
Run Code Online (Sandbox Code Playgroud)
我只是不喜欢打电话给安装和验证.好吧,因为这对AAA来说是一个好主意,换句话说,我不喜欢重复设置和验证的表达式.目前我将表达式存储在变量中并将其传递给每个方法,但感觉不是那么干净.
PS - 上下文用于检查何时更新缓存(explirations等)的测试
有没有办法在Java代码中验证电子邮件地址是否有效.通过有效,我不仅仅意味着它的格式正确(someone@domain.subdomain),但这是一个真正的活动电子邮件地址.
我几乎可以肯定,没有100%可靠的方法可以做到这一点,因为这种技术将成为垃圾邮件发送者的梦想.但也许有一些技术可以提供一些关于地址是否"真实"的有用指示.
我需要验证图片网址以检查网址是否是这些扩展程序的图片: - jpeg,jpg,gif,png.示例: - 当我们验证此URL http://www.example.com/asdf.jpg时,它应该给我们真正的价值,并且像这样的url http://www.example.com/asdf.php应该返回false.我们如何在javascript中执行此操作,并且还要检查URL的内容类型.这样我们就可以说网址是否是图像.
我从PFX证书创建了PEM证书并想要验证它.但是我遇到了这个问题,尝试找到一些答案,但我没有,因此我不知道如何解决它.你能建议吗?非常感谢你.
C:\OpenSSL-Win32\bin>set OPENSSL_CONF=C:\OpenSSL-Win32\bin\openssl.cfg
C:\OpenSSL-Win32\bin>openssl
OpenSSL> verify C:\mycert.pem
C:\mycert.pem: C = CZ, ST = Sprava zakladnich registru, L = "Obec=Praha,Ulice=Na Vapence,PSC=13000", O = 72054506, OU = 4333, CN = tstcawilly.szr.local
error 20 at 0 depth lookup:unable to get local issuer certificate
error in verify
OpenSSL>
OpenSSL> verify -CAfile C:\mycert.pem C:\mycert.pem
C:\mycert.pem: C = CZ, ST = Sprava zakladnich registru, L = "Obec=Praha,Ulice=Na Vapence,PSC=13000", O = 72054506, OU = 4333, CN = tstcawilly.szr.local
error 20 at 0 depth lookup:unable to get local …Run Code Online (Sandbox Code Playgroud) 使用Moq,我有一个非常奇怪的问题,如果我设置的方法是公共的,模拟上的设置似乎只能工作.我不知道这是一个Moq bug还是我错了(Moq的新手).以下是测试用例:
public class TestClass
{
public string Say()
{
return Hello();
}
internal virtual string Hello()
{
return "";
}
}
[TestMethod]
public void Say_WhenPublic_CallsHello()
{
Mock<TestClass> mock = new Mock<TestClass>();
mock.Setup(x => x.Hello()).Returns("Hello World");
string result = mock.Object.Say();
mock.Verify(x => x.Hello(), Times.Exactly(1));
Assert.AreEqual("Hello World", result);
}
Run Code Online (Sandbox Code Playgroud)
该消息失败了:
Say_WhenPublic_CallsHello失败:Moq.MockException:调用没有在仿1次进行的:X => x.Hello()在Moq.Mock.ThrowVerifyException(IProxyCall预期,表达表达,倍)...
如果我像这样公开Hello方法,则测试通过.这是什么问题?
public virtual string Hello()
{
return "";
}
Run Code Online (Sandbox Code Playgroud)
提前致谢!
让我们假设一段测试代码:
Observable model = Class.forName(fullyQualifiedMethodName).newInstance();
Observer view = Mockito.mock(Observer.class);
model.addObserver(view);
for (Method method : Class.forName(fullyQualifiedMethodName).getDeclaredMethods())
{
method.invoke(model, composeParams(method));
model.notifyObservers();
Mockito.verify(
view, Mockito.atLeastOnce()
).update(Mockito.<Observable>any(), Mockito.<Object>any());
}
Run Code Online (Sandbox Code Playgroud)
Mockito.verify如果模型中的Observable.setChanged()方法没有调用方法,则抛出异常.
问题:没有添加loggers/System.print.out我无法意识到当前测试失败的方法是什么.有没有办法与jUnit Assert方法类似:
Assert.assertEquals(
String.format("instances %s, %s should be equal", inst1, inst2),
inst1.getParam(),
inst2.getParam()
);
Run Code Online (Sandbox Code Playgroud)
解:
verify(observer, new VerificationMode()
{
@Override
public void verify(VerificationData data)
{
assertTrue(
format(
"method %s doesn't call Observable#setChanged() after changing the state of the model",
method.toString()
),
data.getAllInvocations().size() > 0);
}
}).update(Mockito.<Observable>any(), Mockito.<Object>any());
Run Code Online (Sandbox Code Playgroud) 当我使用openssl API验证服务器证书(自签名)时,我收到以下错误:
错误19在1深度查找:证书链中的自签名证书
根据openssl 文档,这个错误(19)是
"X509_V_ERR_SELF_SIGNED_CERT_IN_CHAIN:证书链中的自签名证书 - 可以使用不受信任的证书构建证书链,但无法在本地找到根证书."
为什么会出现此错误?我的服务器证书有问题吗?
verify ×10
java ×3
junit ×3
mockito ×3
mocking ×2
moq ×2
openssl ×2
.net ×1
assert ×1
c ×1
c# ×1
certificate ×1
command ×1
command-line ×1
email ×1
function ×1
image ×1
installation ×1
javascript ×1
linux ×1
shell ×1
signature ×1
testing ×1
unit-testing ×1
url ×1