21

これは可能ですか?試してみましEasyMock.expectLastCall().times(0);たが、EasyMockは時間が1以上でなければならないと文句を言います

4

6 に答える 6

25

使用できます.andThrow(new AssertionFailedError()).anyTimes();-これはスローするのと同じ例外ですAssert.fail()が、を作成するよりも冗長ではありませんAnswer

于 2013-01-16T20:58:04.843 に答える
10

easymock 3.0では、expectLastCallに.anyTimes()を追加する必要があります。そうしないと、テストは失敗します。

Expectation failure on verify: myMethod(): expected: 1, actual: 0`

nkr1ptの例に基づく:

expectLastCall().andAnswer(new IAnswer() {
    public Object answer() {
      Assert.assertFail();
      return null;
    }
}).anyTimes();
于 2011-05-30T13:43:46.247 に答える
8

The fact that some method is not called is controlled by Mock or StrictMock. They will throw an exception, when that not recorded method is called. This problem occurs only when using NiceMocks, where default values are returned when calling for not recorded methods.

So a solution can be not to use NiceMocks.

于 2012-08-23T14:51:44.703 に答える
1

私にはバグのように見えます。内部クラスRangeでは、最大値を1未満に設定することはできません。

そのメソッドをモックして、ただ呼び出すことができませんでしたAssert.fail()か?

于 2010-09-15T06:54:29.067 に答える
1

メソッドが呼び出されないことが予想される場合は、それを記録しないでください。しかし、私はそれが素敵なモックでは機能しないことに同意します。

于 2010-09-16T21:54:12.513 に答える
0

私はなんとか解決策を思いついた:

expectLastCall().andAnswer(new IAnswer() {
    public Object answer() {
        Assert.assertFail();
        return null;
    }
});
于 2010-09-15T20:54:07.753 に答える