FluentAssertions ShouldNotThrow est pas reconnu pour une méthode async/Func

Je suis en train de vérifier une méthode asynchrone jette béton exception.

Pour que je suis à l'aide de MSTEST et FluentAssertions 2.0.1.

J'ai vérifié ce Discussion sur Codeplex et de voir comment il fonctionne avec async-exception à des méthodes un autre lien sur FluentAssertions async tests:

Après un tout en essayant de travailler avec ma "production" de code, j'ai éteint la Fluentassertions faux aync classe et mon code résultant est comme ça (mettre ce code à l'intérieur d'un [TestClass]:

[TestMethod]
public void TestThrowFromAsyncMethod()
{
    var asyncObject = new AsyncClass();
    Action action = () =>
    {
        Func<Task> asyncFunction = async () =>
        {
            await asyncObject.ThrowAsync<ArgumentException>();
        };
        asyncFunction.ShouldNotThrow();
    };
}


internal class AsyncClass
{
    public async Task ThrowAsync<TException>()
        where TException : Exception, new()
    {
        await Task.Factory.StartNew(() =>
        {
            throw new TException();
        });
    }

    public async Task SucceedAsync()
    {
        await Task.FromResult(0);
    }
}

Le problème est que ShouldNotThrow n'est pas valide:

ShouldNotThrow méthode n'est pas reconnue par le code. Si j'essaie d'
compiler, il me donne cette erreur:
'Système.Func' ne contient pas de
définition des "ShouldNotThrow" et la meilleure méthode d'extension de surcharge
'FluentAssertions.AssertionExtensions.ShouldNotThrow(Système D'.Action,
string, params object[])' a certains arguments non valides

Grâce.


SOLUTION

2.0.1 FA version ne prend pas en charge cette ShouldNotThrow fonctionnalité et il sera inclus dans la prochaine reléase 2.1 (à proximité de la semaine prochaine).

Remarque: ShouldThrow est déjà pris en charge dans 2.0.1 versión.

  • Je ne sais rien à propos de FluentAssertions, mais l'exception, dit que ShouldNotThrow est définie uniquement pour les Action et pas Func.
  • Ce qui signifie que FluentAsseritions probablement ne prend pas en charge async.
  • FluentAssertions prend en charge asynchrone, si vous lisez le lien ci-dessus (lien), vous pouvez le voir. Et celui-ci pourrait l'aider: fluentassertions.codeplex.com/workitem/12148
  • Ciblez-vous .NET 4.5 dans votre projet de test d'unité? Si oui, essayez de désinstaller FA et de le réinstaller.
  • La cible est .NET 4.5 FluentAssertions est Nuget gérés et à l'exécution de la version de propriété est: v4.0.30319
InformationsquelleAutor ferpega | 2013-08-14