📜  GWT测试

📅  最后修改于: 2021-01-02 12:52:30             🧑  作者: Mango

GWT测试

JUnit提供了经过时间检验的框架来测试GWT应用程序。它包含许多工具,可以根据用户需求直接创建测试用例。

现在,基于Web项目STOCK EXCHANGE (在上一章中创建),我们执行JUnit测试。

  • 像所有GWT JUnit测试用例一样,StockExchangeTest类在com.google.gwt.junit.client包中扩展了GWT测试用例类。您可以通过扩展此类来创建其他测试用例。
  • StockExchangeTest类具有抽象方法(getModuleName),该方法必须返回GWT模块的名称。对于StockExchange,即com.google.gwt.sample.stockexchange.StockExchange。
  • StockExchangeTest类是使用一个示例测试用例重言式测试testSimple生成的。此testSimple方法使用从JUnit Assert类继承的许多断言函数之一。
  • assertTrue(boolean)函数断言传入的布尔参数的值为true。如果不是,则在JUnit中运行时,testSimple测试将失败。

StockExchangeTest.java

package com.google.gwt.sample.stockexchange.client;
    import com.google.gwt.junit.client.GWTTestCase;
    /**
     * GWT JUnit tests must extend GWTTestCase.
 */
public class StockExchangeTest extends GWTTestCase {                       
      /**
       * Must refer to a valid module that sources this class.
   */
  public String getModuleName() {    
  return "com.google.gwt.sample.stockexchange.StockExchange";
  }
      /**
       * Add as many tests as you like.
   */
  public void testSimple() {                                              
assertTrue(true);
  }
    }

运行单元测试

您可以通过四种方式运行JUnit测试:

  • 在命令行中,使用junitCreator生成的脚本
  • 在Eclipse中,使用Google Eclipse插件
  • 在Eclipse中,使用由webAppCreator生成的Eclipse启动配置文件
  • 在手动测试模式下

我们正在使用Eclipse和Google插件:

Google Eclipse插件可轻松在Eclipse中运行测试。

  • 在开发模式下运行JUnit测试。
  • 在Package Explorer中,右键单击要运行的测试用例,选择Run As> GWT Junit Test
  • simpleTest执行无错误。

  • 在生产模式下运行JUnit测试。
  • 在Package Explorer中,右键单击要运行的测试用例,然后选择Run As> GWT Junit Test(生产模式)
  • simpleTest执行无错误。

写作单元测试

  • 编写一个JUnit测试,以验证StockPrice类的构造函数是否正确设置了新对象的实例字段。
  • 向StockExchangeTest类添加testStockPriceCtor方法,如下所示。
/**
     * Verify that the instance fields in the StockPrice class are set correctly.
 */
public void testStockPriceCtor() {
  String symbol = "XYZ";
  double price = 70.0;
  double change = 2.0;
  double changePercent = 100.0 * change / price;
  StockPrice sp = new StockPrice(symbol, price, change);
  assertNotNull(sp);
  assertEquals(symbol, sp.getSymbol());
  assertEquals(price, sp.getPrice(), 0.001);
  assertEquals(change, sp.getChange(), 0.001);
  assertEquals(changePercent, sp.getChangePercent(), 0.001);
}

在开发模式下重新运行StockExchangeTest。

两项测试均应通过:

[junit] Running com.google.gwt.sample.stockexchange.client.StockExchangeTest
[junit] Tests run: 2, Failures: 0, Errors: 0, Time elapsed: 12.451 sec