Модульное тестирование с использованием MOQ: проверить, вызывается ли метод при определенных условиях - PullRequest
0 голосов
/ 27 февраля 2020

У меня есть метод, который внутренне вызывает methodB, но основанный на определенном условии

methodA(Req req)
{
if(req.Quantity > 10)
{
_someIinterface.methodB(req);
}
}

, и у меня есть несколько условий, где

amount = 1 -> methodB () не будет выполнен

количество = 5 -> methodB () не будет выполнено

количество = 11 -> методB () будет выполнено

количество = 4 -> methodB () не будет выполнено

ТАК У меня есть тестовый пример, такой как

[Theory]
[JsonFileData("TestData.json", "ScenarioRequest")]
public void TestMethodB()
{
Mock<SomeInterface> moq= new Mock<SomeInterface>();
moq.Setup(x=>x.methodB(It.IsAny<Req>())).Verifiable();
sut.methodA(req);
moq.Verify(x=>x.methodB(It.IsAny<Req>()),Times.Once());

}

источник JsonFileData от https://andrewlock.net/creating-a-custom-xunit-theory-test-dataattribute-to-load-data-from-json-files/

Так что в этом случае тестовые сценарии 1 и 2 Сбой, но тестовый сценарий 3,4 проходит, хотя тестовый набор 4 имеет количество 4. Кто-нибудь знает, как тестировать такие случаи?

...