VBでテストするコードは次のようになります。簡体字VBでVBでMOQからC#を設定する
Public Interface IFwCompressor
Function Calculate(ByVal condenserPower As Double,
ByVal evaporatingTemp As Double,
ByVal condensingTemp As Double,
ByRef rotationalSpeed As Double,
ByRef compressorPower As Double,
ByRef electricalPower As Double) As CalculationResult
Enum CalculationResult
ActivateNextCircuit = 3
Off = 2
Ok = 0
UnknownError = -1
MaxRps = -6
End Enum
End Interface
Public Class Compressor
Private ReadOnly _fwCompressor As IFwCompressor
Public Sub New(ByVal fwCompressor As IFwCompressor)
_fwCompressor = fwCompressor
End Sub
Public Function CalculateIntermittentResult(ByVal compressorInput As CompressorIntermittenInput) As StatusAndResult(Of CompressorStatus, CompressorResult)
Dim meanCompressorPower, meanRotationalSpeed, meanElectricalPower As Double
Dim result = _fwCompressor.CalculateIntermittentResult(_
compressorInput.RotationalSpeed,
compressorInput.RunningTimeFraction,
compressorInput.CompressorPower,
meanRotationalSpeed,
meanCompressorPower,
meanElectricalPower)
Return New StatusAndResult(Of CompressorStatus, CompressorResult)(
CompressorStatus.Ok,
New CompressorResult(CompressorRunMode.Intermittent,
meanRotationalSpeed,
meanCompressorPower,
meanElectricalPower))
End Function
私がこのように書いたテストです。 C#とMOQフレームワークです。
double meanRotationalSpeed = 15;
double meanCompressorPower = 1000;
double meanElectricalPower = 500;
fwCompressor.Setup(e => e.CalculateIntermittentResult(It.IsAny<double>(),
It.IsAny<double>(),
It.IsAny<double>(),
ref meanRotationalSpeed,
ref meanCompressorPower,
ref meanElectricalPower)).Returns(MaxRps);
私の問題は、メソッドが取得するときには、CalculateIntermittentResult
内のパラメータmeanRotationalSpeed
、MeanCompressorPower
、MeanElectricalPower
と結果の戻り0
を呼び出すことですか?
ByRef
MOQのパラメータは、C#からVBに可能ですか?
どのバージョンのMoqを使用していますか? – Spock
お使いのMoqのバージョンは? = 4.5.1 –
以下の答えに感謝します。Moq> 4はref引数をサポートしています。 – Spock