Есть ли свободное API для MSTest? - PullRequest
15 голосов
/ 19 ноября 2008

Я недавно познакомился с беглым интерфейсом в nUnit, и мне это нравится; однако я использую msTest.

Кто-нибудь знает, существует ли свободный интерфейс, который либо тестирует независимую от фреймворка систему, либо для msTest?

Ответы [ 3 ]

17 голосов
/ 08 августа 2010

См. Свободные утверждения . Вы можете делать такие вещи, как

"ABCDEFGHI".Should().StartWith("AB").And.EndWith("HI").And.Contain("EF").And.HaveLength(9);

new[] { 1, 2, 3 }.Should().HaveCount(4, "because we thought we put three items in the 
collection"))

dtoCollection.Should().Contain(dto => dto.Id != null);

collection.Should().HaveCount(c => c >= 3);

dto.ShouldHave().AllPropertiesBut(d => d.Id).EqualTo(customer);

dt1.Should().BeWithin(TimeSpan.FromHours(50)).Before(dt2); 

Action action = () => recipe.AddIngredient("Milk", 100, Unit.Spoon);
action
   .ShouldThrow<RuleViolationException>()
   .WithMessage("Cannot change the unit of an existing ingredient")
   .And.Violations.Should().Contain(BusinessRule.CannotChangeIngredientQuanity
5 голосов
/ 12 января 2010

См. http://sharptestex.codeplex.com/

ПРИМЕЧАНИЕ: SharpTestsEx, похоже, больше не разрабатывается, рекомендуется альтернатива http://www.fluentassertions.com/.

SharpTestsEx (Расширения Sharp Tests) - это набор расширяемых расширений. Основной целью является написание коротких утверждений, где Visual Studio IDE intellisense является вашим руководством. #TestsEx можно использовать с NUnit, MsTests, xUnit, MbUnit ... даже в Silverlight.

Пример синтаксиса для строго типизированных утверждений (взят с веб-страницы):

true.Should().Be.True();
false.Should().Be.False();

const string something = "something";
something.Should().Contain("some");
something.Should().Not.Contain("also");
something.ToUpperInvariant().Should().Not.Contain("some");

something.Should()
    .StartWith("so")
    .And
    .EndWith("ing")
    .And
    .Contain("meth");

something.Should()
    .Not.StartWith("ing")
    .And
    .Not.EndWith("so")
    .And
    .Not.Contain("body");

var ints = new[] { 1, 2, 3 };
ints.Should().Have.SameSequenceAs(new[] { 1, 2, 3 });
ints.Should().Not.Have.SameSequenceAs(new[] { 3, 2, 1 });
ints.Should().Not.Be.Null();
ints.Should().Not.Be.Empty();

ints.Should()
    .Contain(2)
    .And
    .Not.Contain(4);

(new int[0]).Should().Be.Empty();
0 голосов
/ 08 декабря 2008

Судя по моим исследованиям, их нет, но если вы готовы пожертвовать лучшей отчетностью, почему не удалось подтвердить, и хотите добавить новую dll, вы можете ссылаться на nunit и использовать их.

...