storyQ, передающий параметр в функцию - PullRequest
0 голосов
/ 15 января 2019

вот мой тест, я хотел бы передать переменную в функцию ImageSelectionDatabaseIsValidAllTotalGainsAssigned. Я хочу, чтобы она проверяла утверждение один раз для 8 и один раз для 7.

однако вы не можете передать параметр в функцию и вызвать .Then ()

Не могли бы вы объяснить, как это можно сделать?

    [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());
    }

1 Ответ

0 голосов
/ 17 января 2019
           [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());
            }
...