Nunit: рджреВрд╕рд░реА рдмрд╛рд░ рд╕реЗрдЯрдЕрдк рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╕рдордп UnexpectedArgumentMatcherException

рдХреЛ рдирд┐рд░реНрдорд┐рдд 29 рдЕрдЧре░ 2019  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: nunit/nunit

рдореЗрд░реЗ рдкрд╛рд╕ рдпреЗ рджреЛ рдкрд░реАрдХреНрд╖рдг рд╣реИрдВ (рддреНрд░реБрдЯрд┐ рдХреЛ рджреЛрд╣рд░рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдирдВрдЧреЗ рд╣рдбреНрдбрд┐рдпреЛрдВ рдХреЛ рдЫреАрди рд▓рд┐рдпрд╛ рдЧрдпрд╛):

    [TestFixture]
    public class CreditorMapperTests
    {        
        private IAbcContext _AbcContext;

        [SetUp]
        public void Setup()
        {
            _AbcContext = Substitute.For<IAbcContext>();
            _AbcContext.CompanyInfo.Returns(x => new CompanyInfo(Arg.Any<Guid>()));
        }

        [Test]
        public void A()
        {
            Creditor publishDocument = new Creditor();

            publishDocument.CompanyExternalId = _AbcContext.CompanyInfo.UniqueId;
        }

        [Test]
        public void  B()
        {
            Creditor publishDocument = new Creditor();

            publishDocument.CompanyExternalId = _AbcContext.CompanyInfo.UniqueId;
        }
    }

    public interface IAbcContext
    {        
        CompanyInfo CompanyInfo { get; }
    }

    public class CompanyInfo
    {
        public CompanyInfo(Guid uniqueId)
        {
            UniqueId = uniqueId;
        }

        public readonly Guid UniqueId;
    }

Setup() рд▓рд┐рдП A() рдареАрдХ рдЪрд▓рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЬрдм Setup() рдХреЛ B() рд▓рд┐рдП рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдореБрдЭреЗ рдпрд╣ рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИ:

NSubstitute.Exceptions.UnexpectedArgumentMatcherException: Argument
рдореИрдЪрд░реНрд╕ (Arg.Is, Arg.Any) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рд╕рджрд╕реНрдп рдХреЗ рд╕реНрдерд╛рди рдкрд░ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП
рддрд░реНрдХред рд░рд┐рдЯрд░реНрди () рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдореЗрдВ рдпрд╛ рдХрд╣реАрдВ рдФрд░ рдЗрд╕реНрддреЗрдорд╛рд▓ рди рдХрд░реЗрдВ
рдПрдХ рд╕рджрд╕реНрдп рдХреЙрд▓ рдХреЗ рдмрд╛рд╣рд░ред рд╕рд╣реА рдЙрдкрдпреЛрдЧ:
рдЙрдк.MyMethod(Arg.Any())ред рд░рд┐рдЯрд░реНрди ("рд╣рд╛рдп") рдЧрд▓рдд рдЙрдкрдпреЛрдЧ:
sub.MyMethod("hi").Returns(Arg.Any .)())

рдпрд╣ рдХреЗрд╡рд▓ рддрдм рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдореИрдВ рдЙрд╕ рдХрдХреНрд╖рд╛ рдореЗрдВ рд╕рднреА рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдХрд░ рджреЛрдиреЛрдВ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рддрд╛ рд╣реВрдВред
рдпрджрд┐ рдореИрдВ рд╕реНрд╡рдпрдВ B() рдЪрд▓рд╛рддрд╛ рд╣реВрдВ, рддреЛ рдЕрдкрд╡рд╛рдж рдирд╣реАрдВ рдлреЗрдВрдХрд╛ рдЬрд╛рддрд╛ рд╣реИред

Setup() рд▓рд┐рдП B() рдХреЗрд╡рд▓ рддрднреА рд╡рд┐рдлрд▓ рдХреНрдпреЛрдВ рд╣реЛрддрд╛ рд╣реИ рдЬрдм A() рдмрд╛рдж рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЪрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ?

(рдирд╛рдпрдмред рджреЛрдиреЛрдВ рдкрд░реАрдХреНрд╖рдг рд╕рдорд╛рди рд╣реИрдВ)ред

рдореИрдВ NUnit v3.8.1 рдФрд░ NSubstitute v2.0.3 . рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдпрд╣ NSubstitute рдХрд╛ рдПрдХ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рд╣реИред рд╕рдВрджреЗрд╢ рд╣реА рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдХреЛрдб рдореЗрдВ рдХреНрдпрд╛ рдЧрд▓рдд рд╣реИред рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ NUnit рдХреБрдЫ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред

рдпрджрд┐ рдЖрдк рдкреВрдЫ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рдЖрдкрдХрд╛ рдХреЛрдб рдХреЗрд╡рд▓ рджреВрд╕рд░реА рдмрд╛рд░ рдХреНрдпреЛрдВ рдлреЗрдВрдХрддрд╛ рд╣реИ рдФрд░ рдкрд╣рд▓реА рдмрд╛рд░ рдирд╣реАрдВ, рддреЛ рдЖрдк рдЧрд▓рдд рд▓реЛрдЧреЛрдВ рд╕реЗ рдкреВрдЫ рд░рд╣реЗ рд╣реИрдВред рдЖрдк NSubstitute рдХреЗ рдбреЗрд╡рд▓рдкрд░ рд╕реЗ рдкреВрдЫ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╢рд╛рдпрдж рдЖрдкрдХреЗ рд╕рдордп рдХрд╛ рдмреЗрд╣рддрд░ рдЙрдкрдпреЛрдЧ Arg.Any() рдХрд╛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмрдВрдж рдХрд░рдирд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдЗрд░рд╛рджрд╛ рдирд╣реАрдВ рд╣реИред

рд╕рднреА 3 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдпрд╣ NSubstitute рдХрд╛ рдПрдХ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рд╣реИред рд╕рдВрджреЗрд╢ рд╣реА рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдХреЛрдб рдореЗрдВ рдХреНрдпрд╛ рдЧрд▓рдд рд╣реИред рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ NUnit рдХреБрдЫ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред

рдпрджрд┐ рдЖрдк рдкреВрдЫ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рдЖрдкрдХрд╛ рдХреЛрдб рдХреЗрд╡рд▓ рджреВрд╕рд░реА рдмрд╛рд░ рдХреНрдпреЛрдВ рдлреЗрдВрдХрддрд╛ рд╣реИ рдФрд░ рдкрд╣рд▓реА рдмрд╛рд░ рдирд╣реАрдВ, рддреЛ рдЖрдк рдЧрд▓рдд рд▓реЛрдЧреЛрдВ рд╕реЗ рдкреВрдЫ рд░рд╣реЗ рд╣реИрдВред рдЖрдк NSubstitute рдХреЗ рдбреЗрд╡рд▓рдкрд░ рд╕реЗ рдкреВрдЫ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╢рд╛рдпрдж рдЖрдкрдХреЗ рд╕рдордп рдХрд╛ рдмреЗрд╣рддрд░ рдЙрдкрдпреЛрдЧ Arg.Any() рдХрд╛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмрдВрдж рдХрд░рдирд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдЗрд░рд╛рджрд╛ рдирд╣реАрдВ рд╣реИред

рдореИрдВрдиреЗ рдпрд╣рд╛рдВ рдПрдХ рд╕рдорд╕реНрдпрд╛ рд╕рдмрдорд┐рдЯ рдХреА рд╣реИ:
https://github.com/nsubstitute/NSSubstitute/issues/587

@ backwardsDave1 рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХрд╛ NUnit рд╕реЗ рдХреЛрдИ рд▓реЗрдирд╛-рджреЗрдирд╛ рдирд╣реАрдВ рд╣реИред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

Prodigio picture Prodigio  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

yaakov-h picture yaakov-h  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

JackUkleja picture JackUkleja  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

xplicit picture xplicit  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

fluffynuts picture fluffynuts  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ