我无法模拟以下本地对象- env、service、creds。这些类来自导入的云铸造依赖项。
如何使用Groovy或Junit 4 编写包含以下所有条件的测试用例,而无需重构代码
import io.pivotal.cfenv.core.cfEnv
import io.pivotal.cfenv.core.cfCredentials
import io.pivotal.cfenv.core.cfService
class Test {
public String getPropertyValue() {
CfEnv env = new CfEnv();
CfService service = new CfService();
String propName = "test-name";
try {
service = env.findServiceByName(propName);
} catch (Exception e) {
return null;
}
CfCredentials creds = new CfCredentials();
Map<String, Object> props = service.getMap();
return props.get("prop.name").toString();
}
}发布于 2021-10-09 14:53:53
由于您的代码是Groovy,所以您可以使用Spock的GroovySpy (参见文档 )
例如:
class ASpec extends Specification {
def "getPropertyValue() return null when env.findServiceByName throws an exception"() {
given:
CfEnv envMock = GroovySpy(global: true)
when:
def result = new Test().getPropertyValue()
then:
result == null
1 * envMock.findServiceByName(_) >> { throw new RuntimeException() }
}https://stackoverflow.com/questions/69362125
复制相似问题