2
我使用Given/When/Then模式使測試代碼更清晰。由於我用C++編寫這些測試,我選擇使用Google Test。隨着測試的花紋清晰,因爲我折騰這樣的:如何使用Given/When/Then模仿模擬(Google Mock)?
TEST(TestFixture, TestName)
{
// Given
int a = 5;
int b = 6;
int expectedResult = 30;
// When
int result = Multiply(a, b);
// Then
EXPECT_EQ(expectedResult, result);
}
但隨着嘲笑它停止,因爲沒有出現在給定的某些部分是預期明確。給定部分假設是一個設置步驟。請看一個例子:
TEST(TestFixture, TestName)
{
// Given
int a = 5;
int b = 6;
int expectedResult = 30;
MightCalculatorMock mock;
EXPECT_CALL(mock, multiply(a,b))
.WillOnce(Return(expectedResult));
// When
int result = Multiply(mock, a, b);
// Then
EXPECT_EQ(expectedResult, result);
}
這種方法是否正確?給定/何時/那麼評論應該放在測試代碼中,在哪裏?
Thanks! 嗯,我只是喜歡整個模式:) 無論如何,我將命名新模式AEAC,安排,期待,行爲,與檢查塊檢查功能的結果是檢查:) – Netrix