2
我願意用Foq來模擬IBus。你可以在foq中設置遞歸模擬嗎?
IBus
上的方法之一是OpenPublishChannel
,它返回IPublishChannel。 IPublishChannel又有一個Bus
屬性,它返回父項IBus
。
我目前的代碼在下面,但顯然它不能編譯,因爲mockBus沒有被我需要的點所定義。有沒有建立像這樣的遞歸嘲諷而不創建兩個任何接口的模擬?
open System
open EasyNetQ
open Foq
let mockChannel =
Mock<IPublishChannel>()
.Setup(fun x -> <@ x.Bus @>).Returns(mockBus)
.Create()
let mockBus =
Mock<IBus>()
.Setup(fun x -> <@ x.OpenPublishChannel() @>).Returns(mockChannel)
.Create()
好極了!謝謝@Phillip Trelford。不敢相信我沒注意到這個單位 - >'TValue過載。 – mavnn 2013-04-23 11:01:24