Я использую MSpec для написания своих модульных тестов и действительно предпочитаю стиль BDD, я думаю, что это намного больше удобочитаемый. Сейчас я использую Silverlight, который MSpec не поддерживает, поэтому мне приходится использовать MSTest, но я все еще хотел бы сохранить стиль BDD, поэтому я пытаюсь найти способ сделать это.
Просто чтобы объяснить, что я ' Я пытаюсь добиться успеха, вот как я d написать тест MSpec
[Subject(typeof(Calculator))]
public class when_I_add_two_numbers : with_calculator
{
Establish context = () => this.Calculator = new Calculator();
Because I_add_2_and_4 = () => this.Calculator.Add(2).Add(4);
It should_display_6 = () => this.Calculator.Result.ShouldEqual(6);
}
public class with_calculator
{
protected static Calculator;
}
Итак, с MSTest я бы попытался написать такой тест (хотя вы можете видеть, что это не сработает, потому что я ввел 2 атрибута TestInitialize, но вы получаете то, что я пытаюсь сделать ..)
[TestClass]
public class when_I_add_two_numbers : with_calculator
{
[TestInitialize]
public void GivenIHaveACalculator()
{
this.Calculator = new Calculator();
}
[TestInitialize]
public void WhenIAdd2And4()
{
this.Calculator.Add(2).Add(4);
}
[TestMethod]
public void ThenItShouldDisplay6()
{
this.Calculator.Result.ShouldEqual(6);
}
}
public class with_calculator
{
protected Calculator Calculator {get;set;}
}
Может ли кто-нибудь придумать более элегантные предложения по написанию тестов таким образом с помощью MSTest?