우리는 우리의 솔루션 테스트 범위에 대한 OpenCover
을 사용하고 난어떤 일이 발생하지 않았는지 어떻게 확인합니까?
public async Task Build(ProcessorContext context)
{
context.ResultBetSlip.Bets.Clear();
// Here OpenCover tells me that I need to cover two branches
// so I assume I need to verify that GetAvailablePlugins can be empty and
// no Build method was called.
// How do I do that?
foreach (var plugin in _pluginFactory.GetAvailablePlugins())
{
await plugin.Build(context);
}
}
지금 내 테스트는 심지어 가능한 경우 이러한 경우 테스트를 고려해야
[Test]
public async Task Build_ShouldntEnterForeachWhenThereAreNoPluginsRegistered()
{
// Arrange
var pluginFactoryMock = new Mock<IBetSlipProcessorServicePluginFactory>();
var sut = new BetSlipProcessorService(pluginFactoryMock.Object);
pluginFactoryMock
.Setup(pf => pf.GetAvailablePlugins())
.Returns(new List<IBetSlipProcessorServicePlugin>());
// Act
await sut.Build(AutoFixtureSimplified.Create<ProcessorContext>());
// Assert
???
}
과 같을 것이다 것으로 나타났습니다?
편집 :
이 요청으로 시험 범위 보고서입니다 :
그리고 여기 당신은 내가 이러한 범위를 달성하기 위해 할 수있는 모든 테스트의 요점을 찾을 수 있습니다. https://gist.github.com/kuskmen/df3f112b2b6d880741ee6ab559d64d53
항목이있을 때 이미 테스트를 했습니까? – Nkosi
예,하지만 'OpenCover'는 제가 거기에 하나 이상의 지점을 커버해야한다고 알려줍니다. – kuskmen
그러면 GetAvailablePlugins가 호출되었는지 확인하십시오. – Nkosi