Теория Xunit с различными типами данных в classdata - PullRequest
0 голосов
/ 02 мая 2019

Я пытаюсь проверить значения словаря, которые передаются в мою базу данных.Я хочу убедиться, что все параметры учтены.По какой-то причине единственные проходящие тесты - это строковые типы данных.

(утверждение использует Moq)

данные класса

private class SaveData : IEnumerable<object[]> {
        public IEnumerator<object[]> GetEnumerator() {
            yield return new object[]{ "EventId", 7};
            yield return new object[]{ "LineNumber", 1};
            yield return new object[]{ "ItemNumber", 2 };
            yield return new object[]{ "ItemDescription", "Fake Item Description" };
            yield return new object[]{ "Quantity", 3 };
            yield return new object[]{ "Price", 9.99m };
            yield return new object[]{ "CreateDateTime", new DateTime(2019, 5, 1, 11, 45, 0) };
            yield return new object[]{ "PaymentTransaction", "Fake Payment Transaction" };
            yield return new object[]{ "PaymentDateTime", new DateTime(2019, 5, 1, 11, 45, 0) };
            yield return new object[]{ "PaymentAmount", 199.98m };
            yield return new object[]{ "IsAdjustment", true };
            yield return new object[]{ "OrderDetailTypeId", 3 };
        }

        IEnumerator IEnumerable.GetEnumerator() => GetEnumerator();
    }

модульный тест

[Theory]
        [ClassData(typeof(SaveData))]
        public void EveryCall_HasTheExpectedValue(string key, object value) {
            // arrange
            var db       = MockDatabaseRepository();
            var repo     = MakeRepo(dbRepo: db.Object);
            var model    = MakeModel();
            var guid     = GOOD_GUID;

            // act
            repo.SaveOrderDetail(guid, model)
                .GetAwaiter()
                .GetResult();

            // assert
            db.Verify(r => r.ExecuteCommandAsync(It.IsAny<string>(),
                                                 It.Is<Dictionary<string, object>>(parms => parms[key] == value)),
                      Times.Once);
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...