简体   繁体   中英

storyQ passing parameter to function

here is my test, I would like to pass a variable to the function ImageSelectionDatabaseIsValidAllTotalGainsAssigned I want it to check for assertion once for 8 and once for 7.

however you can't pass a parameter to the function and call .Then()

Can you please explain how this can be done?

    [Test]
    public void Set8NewImagesAndTotalGainsRemove2ImagesTest()
    {
        _imageSelectionStory.WithScenario("init new ImagesSelectionViewModel and load 8 new images from database and assign total gain 1,2 to all, and then remove 2 images")
            .Given(InitImageSelectionViewModelAndDatabaseImages)
            .When(SetNewImagesFromDatabase)
            .And(UpdateAssignedToTotalGains)
            .Then(ImageSelectionDatabaseIsValidAllTotalGainsAssigned)
            .Execute();
    }


    private void ImageSelectionDatabaseIsValidAllTotalGainsAssigned()
    {
        foreach (var image in _imagesSelectionViewModel.Images)
        {
            CollectionAssert.AreEqual(new List<double>{1,2}, image.AssignedToTotalGain);
        }
        Assert.AreEqual(8, _imagesSelectionViewModel.Images.Count);
        Assert.True(_imagesSelectionViewModel.IsValid());
    }
           [Test]
            public void Set8NewImagesAndTotalGainsRemove2ImagesTest()
            {
                _imageSelectionStory.WithScenario("init new ImagesSelectionViewModel and load 8 new images from database and assign total gain" +
                                                  " 1,2 to all, and then remove 2 images")
                    .Given(InitImageSelectionViewModelAndDatabaseImages)
                    .When(SetNewImagesFromDatabase)
                    .And(UpdateAssignedToTotalGainsAndRemove2Images)
                    .Then(ImageSelectionDatabaseIsValidImagesAllTotalGainsAssigned,6)
                    .Execute();
            }

            private void ImageSelectionDatabaseIsValidImagesAllTotalGainsAssigned(int expected)
            {
               foreach (var image in _imagesSelectionViewModel.Images)
              {
                   CollectionAssert.AreEqual(new List<double> { 1, 2 }, image.AssignedToTotalGain);
              }
              Assert.AreEqual(expected, _imagesSelectionViewModel.Images.Count);
              Assert.True(_imagesSelectionViewModel.IsValid());
            }

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM