假设我们有一个oracle包,它初始化时从一个保存全局参数的表中获取一些值。尽管这是一个丑陋的做法,它可以在生产中工作,因为参数将在安装期间设置,并且不太可能经常更改。但是当一个人测试包时,需要在每个案例之前重新初始化其状态。
我尝试了两种方法:
第一种在少数情况下不起作用(我不知道为什么)。
第二个重置当前会话触及的所有包,包括包含测试用例的包,因此任何 reset_package 的调用都会导致中止执行测试。
在测试执行期间需要更改状态时,我需要正确测试具有内部状态的包吗?
答案 0 :(得分:0)
至少有两种方法可以做到这一点。首先,没有人禁止您发布'Initialize'子例程,并在每次测试之前使用它重新读取变量。我想这是一种更好的方法,但是如果你愿意,你可以在这个软件包中添加类似
的软件包procedure MyPublicMethod is
begin
if UnitTesting.RightNow then Initialize; end if;
...
end;
并自动获得相同的效果。