2
如何模擬一個類的成員變量?模擬成員變量
看起來這個FooA()
永遠不會被調用。
注:我在MOQ初學者(和生鏽的C#),所以請與我;-)承擔
未處理的異常:Moq.MockVerificationException:以下 設置不匹配:一個IA => a.FooA()
這裏是源代碼:
using Moq;
namespace TestMock
{
interface IA {
void FooA();
}
class A : IA {
public void FooA() { }
}
class B {
public void FooB() {
a.FooA();
}
IA a = new A();
}
class Program
{
static void Main(string[] args)
{
// Arrange
var mockA = new Mock<IA>();
mockA.Setup(a => a.FooA());
var mockB = new Mock<B>();
// Act
B b = new B();
b.FooB();
// Assert
mockA.VerifyAll();
}
}
}
你沒有使用'mockA'您在main方法創建,而不是類'B'總是創建本身就是類「A」的新實例。所以這個方法調用你設置'mockA'確實從來沒有做過,這就是驗證失敗的原因。 – bassfader
這是因爲你手動創建了一個'B'的新實例,並且不使用模擬。您需要注入依賴關係。 – Nkosi