簡體   English   中英

將Rhino Mock轉換為N

[英]Convert Rhino Mock to NSubstitute

目前,我正在將Rhino Mock的某些實現更改為NSubstitute。 現在我在這里有些困難。 有人可以幫我嗎?

            var provider = MockRepository.GenerateStub<IProvider>();
        provider.Stub(e => e.InitMethod(Arg<Info>.Is.Anything, "ABC")).WhenCalled(
            o =>
            {
                validProvidersDto.ExportFolder = (o.Arguments[0] as Info).Name;
                o.ReturnValue = validProvidersDto;
            }).Return(validProvidersDto);

因此,邏輯是:通過提供者存根調用InitMethod時。 WhenCalled中的代碼將執行並修改某項。 然后返回sth。

現在我確實將其更改為NSubstitute,但是它不兼容

            var provider = Substitute.For<IProvider>();
        provider.When(a => a.InitMethod(Arg.Any<Info>(), "ABC")).Do(
            o =>
            {
                validProvidersDto.ExportFolder = (o.Arguments[0] as Info).Name;
                o.ReturnValue = validProvidersDto;
            }).Returns(validProvidersDto);

我不知道該如何正確地將“從犀牛模擬”轉換為NSubstitute。

感謝您的幫助!

我認為您可以使用Returns回調執行所需的操作:

var provider = Substitute.For<IProvider>();
provider.InitMethod(Arg.Any<Info>(), "ABC").Returns(
    o => {
        validProvidersDto.ExportFolder = o.Arg<Info>().Name;
        return validProvidersDto;
    });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM