2

我有一个方法,其中包含在发布模式和调试模式之间变化的逻辑。它根本不是高级的,但我仍然想要对其进行单元测试,因为我的应用程序将在更大的范围内使用,如果它未在发布模式下使用,我想将用户重定向到其他站点。

现在我的问题是,有没有办法强制单元测试在发布模式下运行?我不想每次运行单元测试时都手动更改构建配置。

4

1 回答 1

1

您可以创建一个测试接缝,而不是在发布模式下运行单元测试,这样您就可以控制要引发的行为。您可能可以这样做:

public class Foo {

    public int Bar() {
      if (IsDebugModeEnabled()) {
        return 1;
      } else {
        return 0;
      }
    }

    public boolean IsDebugModeEnabled() {
      #if DEBUG
      return true;
      #else
      return false;
      #endif
    }   
}

这样你就有几个选项来测试你的逻辑的两条路径。您可以创建一个子类Foo并覆盖IsDebugModeEnabled或使用部分模拟来直接设置返回值。

于 2013-03-26T15:24:00.853 回答