我有一个方法,其中包含在发布模式和调试模式之间变化的逻辑。它根本不高级,但我仍然需要对它进行单元测试,因为我的应用程序将用于更大的图片,我想将用户重定向到其他网站,如果它没有在发布模式下使用。
现在我的问题是,有没有办法强制单元测试在发布模式下运行?我不希望每次想要运行单元测试时手动更改构建配置。
答案 0 :(得分: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
或使用部分模拟来直接设置返回值。