2013-01-22 45 views
3

我已經安裝了specflow。默認情況下,我得到這種情況下添加兩個數字。當我構建解決方案時,我得到這些錯誤。 「方法沒有超載'給定'需要4個參數」。我在這裏錯過了什麼?這是生成的文件。方法'Given'沒有超載需要4個參數 - specflow

public virtual void AddTwoNumbers() 
     { 
      TechTalk.SpecFlow.ScenarioInfo scenarioInfo = new TechTalk.SpecFlow.ScenarioInfo("Add two numbers", new string[] { 
         "mytag"}); 
      #line 7 
      this.ScenarioSetup(scenarioInfo); 
      #line 8 
      testRunner.Given("I have entered 50 into the calculator", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "Given "); 
      #line 9 
      testRunner.And("I have entered 70 into the calculator", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "And "); 
      #line 10 
      testRunner.When("I press add", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "When "); 
      #line 11 
      testRunner.Then("the result should be 120 on the screen", ((string)(null)), ((TechTalk.SpecFlow.Table)(null)), "Then "); 
      #line hidden 

      this.ScenarioCleanup(); 
     } 

對於這樣的場景:

特點:SpecFlowFeature1 爲了避免愚蠢的錯誤 作爲一個數學白癡 我想告訴兩個數字

@mytag 方案的總和:添加兩個號碼 鑑於我已經輸入了50進入計算器 而且我已經輸入70進入計算器 當我按加 然後結果應該是120屏幕上

+0

你可以發佈代碼,你得到的編譯錯誤?因爲默認生成Given:'[Given(「我輸入了(*)到計算器中」)]'應該編譯好。 – nemesv

+0

更新了問題 – Virus

+1

看來您使用的是舊版本的「TechTalk.SpecFlow」dll您的「TechTalk.SpecFlow」dll的版本是什麼?因爲它應該是1.9.0。能夠工作。你有沒有安裝它與nuget http://nuget.org/packages/SpecFlow? – nemesv

回答

4

這是一個techtalk.specflow.dll版本的問題。我有1.8.1版本,我用1.9.0替換,一切正常!謝謝你的建議

+0

該解決方案適用於我。我已經安裝了specflow.nunit軟件包......事實證明,它過時了,所以我不得不下載實際的specflow軟件包,然後更新TechTalk.Specflow。 – Stu1986C

+1

對於所有遵循SpecFlow入門文檔的用戶,安裝後,請轉到nuget包並將其升級到1.9版 – SZT

相關問題