【发布时间】:2015-09-29 17:05:11
【问题描述】:
我知道私有变量的想法是它们不应该被访问,并且我确实希望它在程序的其余部分中使用该模块时以这种方式工作,但我需要它来检查内部模块的工作原理。
假设我有以下简化示例:
module mod
implicit none
private
integer :: value
public :: set_value
contains
subroutine set_value(input)
implicit none
integer,intent(in) :: input
value=input
end subroutine
end module
我现在想测试子例程,看看它是否真的在做我想要的:我想编写一个使用该模块的程序,使用输入 8 调用例程 set_value,然后检查内部变量是否value 现在是 8。
我可以这样做吗?还是有另一种方法来对私有变量的初始化程序进行单元测试?
【问题讨论】:
-
写一个
get_value函数并用它来测试。 -
即使我只使用该功能进行测试?另外,我不会同时测试这两个例程吗?
-
如果您不想关注@casey,只需将其设置为公开以进行测试,然后再将其设置回私有!
标签: fortran