1
我测试这个工厂与异步单元测试是不确定的有FluentAssertions和NSubstitute
public class ContratoFactory : IContratoFactory
{
private readonly IContratoPodeSerCriadoValidation _contratoPodeSerCriadoValidation;
public ContratoFactory(IContratoPodeSerCriadoValidation contratoPodeSerCriadoValidation)
{
_contratoPodeSerCriadoValidation = contratoPodeSerCriadoValidation;
}
public async Task<IValidationResult> Build(Contrato entity)
{
try
{
var result = _contratoPodeSerCriadoValidation.Valid(entity);
}
catch (Exception ex)
{
// throw
}
}
public async Task AdicionarLocalBase(Contrato entity)
{
}
}
,这里是我的测试类
[TestClass]
public class ContratoFactoryTests
{
private IContratoPodeSerCriadoValidation _contratoPodeSerCriadoValidation;
private ContratoFactory _contratoFactory;
[TestInitialize]
public void Initialize()
{
_contratoPodeSerCriadoValidation = Substitute.For<IContratoPodeSerCriadoValidation>();
_contratoFactory = new ContratoFactory(_contratoPodeSerCriadoValidation);
}
[TestMethod]
public async Task AoSerCriadoOContratoDeveSerValidado()
{
var contrato = ContratoValues.ContratoComEmpresaENomeValido;
await _contratoFactory.Build(contrato);
_contratoPodeSerCriadoValidation.Valid(contrato).Received();
}
}
当我运行我的测试中,THES不运行,或者返回“不确定”结果。
如何使用NSubstitute和FluentAssertions测试异步调用?
UPDATE 19/05/16
我固定的测试方法返回,而不是空洞的任务和测试抛出NullReferenceException异常
首先要解决的问题 - 改变你的测试方法返回Task,而不是void。这可能不是你需要做的所有事情,但你当然应该这样做。 –
谢谢=] id有效。它使我的异步测试运行。现在,我有一个NullReferenceObject异常。 – Jedi31
您应该使用更新的信息更新您的问题或删除您的问题 –