7
我有一個單元測試,我嘲笑java.net.URI
類。此外,我正在創建一個jMockit NonStrictExpectation
,我期待調用URI.getPath()
並返回一個特定的字符串。每次從jMockit期望返回不同的值
正在測試的代碼兩次調用URI.getPath()
,我需要每次發送一個不同的字符串。
這是我測試的實際方法:
public void validateResource() {
// some code
URI uri = new URI(link1.getHref());
String path1 = uri.getPath();
// some more code
uri = new URI(link2.getHref());
String path2 = uri.getPath();
}
下面是單元測試代碼:
@Mocked URI uri;
@Test
public void testValidateResource() {
new NonStrictExpectations() {
{
// for the first invocation
uri.getPath(); returns("/resourceGroup/1");
// for the second invocation [was hoping this would work]
uri.getPath(); returns("/resource/2");
}
};
myObject.validateResource();
}
現在,我想"/resource/2"
當URI.getPath()
被稱爲第二次從我的意料返回時間。但它總是碰到第一個期望並返回"/recourceGroup/1"
。這是我的問題。
我該如何做到這一點?由於多種原因,我無法真正使用StrictExpectations
,並且必須堅持使用NonStrictExpectations
。
工作就像一個魅力...謝謝:) –
太棒了,很高興它的工作! –
答案中的文檔鏈接已損壞。這是一個更新的[鏈接](http://jmockit.org/tutorial/Mocking.html#results) –