我有一个方法,其中包含在发布模式和调试模式之间变化的逻辑。它根本不是高级的,但我仍然想要对其进行单元测试,因为我的应用程序将在更大的范围内使用,如果它未在发布模式下使用,我想将用户重定向到其他站点。
现在我的问题是,有没有办法强制单元测试在发布模式下运行?我不想每次运行单元测试时都手动更改构建配置。
我有一个方法,其中包含在发布模式和调试模式之间变化的逻辑。它根本不是高级的,但我仍然想要对其进行单元测试,因为我的应用程序将在更大的范围内使用,如果它未在发布模式下使用,我想将用户重定向到其他站点。
现在我的问题是,有没有办法强制单元测试在发布模式下运行?我不想每次运行单元测试时都手动更改构建配置。
您可以创建一个测试接缝,而不是在发布模式下运行单元测试,这样您就可以控制要引发的行为。您可能可以这样做:
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
或使用部分模拟来直接设置返回值。