NUnit,TestDriven.NET,WatiN和Specflow

时间:2012-02-20 01:39:35

标签: c# nunit watin specflow

我正在尝试使用Specflow,NUnit和WatiN进行一些BDD测试。我正在使用TestDriven.NEt来运行测试。这是我的第一次测试:

[Binding]
    [TestFixture, RequiresSTA]
    public class RegisterUserSteps
    {
        private IE _ie = new IE();

        [When(@"the user visits the registration page")]
        public void WhenTheUserVisitsTheRegistrationPage()
        {
            _ie.GoTo("http://localhost:1064/Register/"); 
        }


        [When(@"enter the following information")]
        public void WhenEnterTheFollowingInformation(Table table)
        {
            foreach(var tableRow in table.Rows)
            {
                var field = _ie.TextField(Find.ByName(tableRow["Field"])); 

                if(!field.Exists)
                {
                    Assert.Fail("Field does not exists!");
                }

                field.TypeText(tableRow["Value"]);
            }
        }

        [When(@"click the ""Register"" button")]
        public void WhenClickTheRegisterButton()
        {
            ScenarioContext.Current.Pending();
        }

        [Then(@"the user should be registered")]
        public void ThenTheUserShouldBeRegistered()
        {
            ScenarioContext.Current.Pending();
        }

    }

问题是它永远不会进入

 [When(@"enter the following information")]
            public void WhenEnterTheFollowingInformation(Table table)

它只是启动浏览器并执行第一步。我错过了什么吗?

1 个答案:

答案 0 :(得分:2)

不看测试,似乎你错过了一个重要的步骤(给定)。通常是这样的:

Given I go to some page
And all the set up data are available - optional
When I enter the following info
And I click "Register" button
Then I see something

基本上步骤是GWT(Given,When,Then)。它是Gherkin语言,所以如果你google它,你会看到更多的信息。如果给定步骤有多个内容,则必须使用And,例如,When ...... And.......,而不是When...... When........