我是 ruby on rails 的新手,有一个类似的代码:
person_map.try(:[], :name)
Run Code Online (Sandbox Code Playgroud)
这里的 :[] 是什么意思?
我有一些逻辑需要测试,例如:
{
...
A.add("1");
...
A.add("what ever");
...
A.add("2");
A.delete("5");
...
}
Run Code Online (Sandbox Code Playgroud)
我已经在测试中模拟了A,并且可以测试对参数(“ 2”)调用一次add方法,例如:
Mockito.verify(mockedA).add("2");
Run Code Online (Sandbox Code Playgroud)
我的问题是如何测试是否可以验证对方法add的最后一次调用是add(“ 2”)而不是其他参数。
由于上面的测试无法捕获是否有人无意中在最后添加了另一个调用,例如add(“ 3”)。请注意,之后我们不再关心A上的其他方法调用。我们也不在乎调用方法的时间,调用方法的顺序。这里的关键是我们是否可以验证某个嘲笑对象的某个方法的最后一个真参数。
如果您问为什么需要这样的功能,我会说在现实世界中,我们可能需要处理一些设置某些事物的逻辑,最后设置的获胜者,为了避免某人意外地设置一些其他未预期的事物,我会喜欢用我们的UT来捕捉这一点。并且为了不使测试变得过于复杂和整洁,因此我只希望验证对象的特定方法的最后一次调用,而不要验证诸如order / noMoreInteractions / AtMostTimes之类的东西。
给定一个java class文件,我们可以使用hexdump或od来知道它的jdk版本,但是我们可以知道给定的java class文件是64位还是32位信息吗?
我想知道java类文件是否有像版本字段这样的字段?
如果字节码与字大小无关,那么当您读取类文件时,它就像:
0000000 feca beba 0000 3100 6300 0009 0019 0946
0000020 1900 4700 0009 0019 0948 1900 4900 0009
0000040 0019 094a 1900 4b00 000a 001a 074c 4d00
第一行大约是2*8字节,为什么第二行地址是0000020?