cucumber-Junit断言失败 - 它无法断言'£'符号

时间:2014-11-08 11:32:56

标签: java selenium junit cucumber assertions

我写了一个黄瓜功能导航到一个网站,搜索一些手机&验证结果集中的电话价格。但是,断言失败并显示以下错误消息:

java.lang.AssertionError: Price is incorrect expected: < ?508.00> but was:<£508.00>

你能帮我解决一下吗?

我正在使用以下库:

junit-4.11
cucumber-core-1.1.5
cucumber-html-0.2.3
cucumber-java-1.1.5
cucumber-junit-1.1.5
cucumber-jvm-deps-1.0.3
gherkin-2.12.1
hamcrest-all-1.3
selenium-server-standalone-2.43.1

功能文件:

Feature: **** 
    phone search and price check feature

Scenario: 

Given I am on  ****** site
When I search for an iPhone
Then I should see the results showing phones at correct prices
  | Results | Price    |
  | record1 | £508.00 |
  | record2 | £415.00 |
  | record3 | £364.99 |
  | record4 | £418.00 |
  | record5 | £421.00 |

从StepDefinition文件中提取:

.......

@Then("^I should see the results showing phones at correct prices$")
public void validateTheResults(DataTable table) throws Throwable {

    List<List<String>> data = table.raw();

    price = driver.findElement(By.xpath("//li[@id='result_0']/div/div/div/div[2]/div[2]/div[1]/div[1]/a/span")).getText();
    System.out.print("Price1 = " +price);
    assertEquals("Price is incorrect",data.get(1).get(1),price); 
    .........

1 个答案:

答案 0 :(得分:1)

您可能会遇到字符集不匹配的问题。 Cucumber troubleshooting guide注意到要采取的几个步骤。以下两个可能与您的情况最相关:

  1. 确保您的.feature文件已保存为UTF-8
  2. require 'cucumber/formatter/unicode'添加到您的env.rb文件