相关疑难解决方法(0)

什么时候期待什么时候和Stub?

我使用NMock2,并且我已经起草了以下NMock类来表示一些常见的模拟框架概念:

  • Expect:这指定了一个模拟方法应返回的内容,并说必须进行调用或测试失败(当伴随调用时VerifyAllExpectationsHaveBeenMet()).

  • Stub:this指定模拟方法应返回的内容,但不能导致测试失败.

那我该怎么做呢?

tdd mocking stub expect nmock

12
推荐指数
2
解决办法
5183
查看次数

GoMock 中的可选调用

我想使用 GoMock 来测试一些代码,而不是将我的测试与被测事物的实际实现太紧密地结合起来。但 GoMock 似乎要求我能够提前准确地说出被测试的代码将进行什么调用,即使这不是我要测试的合约的一部分。有没有解决的办法?

例如,假设我正在测试一些验证逻辑,其中被测代码需要采用命名WidgetmockedObject如果mockedObject.CheckConditionA()mockedObject.CheckCondition1()返回 false,则返回 false,否则返回 true。一种正确的实现是:

func UnderTest(mockedObject *Widget) bool {
    if !mockedObject.CheckConditionA() {
        return false
    }
    return mockedObject.CheckCondition1()
}
Run Code Online (Sandbox Code Playgroud)

另一个是:

func UnderTest(mockedObject *Widget) bool {
    if !mockedObject.CheckCondition1() {
        return false
    }
    return mockedObject.CheckConditionA()
}
Run Code Online (Sandbox Code Playgroud)

第三个是:

func UnderTest(mockedObject *Widget) bool {
    cA := mockedObject.CheckConditionA()
    c1 := mockedObject.CheckCondition1()
    return cA && c1
}
Run Code Online (Sandbox Code Playgroud)

第四个是:

func UnderTest(mockedObject *Widget) bool {
    if TodayIsAnAlternateTuesday() {
        return mockedObject.CheckCondition1() && mockedObject.CheckConditionA()
    }
    return mockedObject.CheckConditionA() && …
Run Code Online (Sandbox Code Playgroud)

mocking go gomock

4
推荐指数
1
解决办法
2357
查看次数

标签 统计

mocking ×2

expect ×1

go ×1

gomock ×1

nmock ×1

stub ×1

tdd ×1