0

我正在尝试测试以下类(我省略了实现)

public class UTRI implements UTR {
    public void runAsUser(String userId, Runnable r);
}

这是我会使用它的方式:

UTRI.runAsUser("User1", new Runnable () {
    private void run() {
    //do whatever needs to be done here.

    }
});

问题是,我不知道如何使用 EasyMock 来测试返回 void 的函数。那我也不太熟悉一般的测试(刚离开学校!)。有人可以帮我解释一下我需要做什么来解决这个问题吗?我当时正在考虑让 UTRI 成为一个模拟,然后再做 expectlastcall,但实际上,不确定。

4

1 回答 1

0
public class UTRITest {

    UTRI utri = new UTRI();

    @Test
    public void testRunAsUser() {
        // Create Mocks
        Runnable mockRunnable = EasyMock.createMock(Runnable.class);

        // Set Expectations
        **mockRunnable.run();
        EasyMock.expectLastCall().once();**

        EasyMock.replay(mockRunnable);
        // Call the method under test
        utri.runAsUser("RAMBO", **mockRunnable**);

        // Verify if run was called on Runnable!!
        EasyMock.verify(mockRunnable);
    }    
}
于 2014-02-06T05:38:03.917 回答