我正在尝试为使用 BouncyCastle 的类编写单元测试SignerInformation- 我想模拟它的一个实例,但试图这样做会导致java.lang.SecurityException. 这是一个简化的工作示例:
签名者信息消费者.java
import org.bouncycastle.cms.SignerInformation;
public class SignerInformationConsumer {
public String interact(SignerInformation si) {
return si.getDigestAlgOID();
}
}
SignerInformationConsumerTest.groovy
import org.bouncycastle.cms.SignerInformation
import spock.lang.Shared
import spock.lang.Specification
class SignerInformationConsumerTest extends Specification {
@Shared
SignerInformation si = Mock()
def "should return valid array"() {
given:
SignerInformationConsumer test = new SignerInformationConsumer()
si.digestAlgOID >> "aaa"
when:
String digest = test.interact(si)
then:
digest == "aaa"
}
}
构建.gradle
plugins {
id 'java'
}
group 'test'
version '1.0-SNAPSHOT'
sourceCompatibility = 1.8
repositories {
mavenCentral()
}
dependencies {
testCompile group: 'org.spockframework', name: 'spock-core', version: '1.1-groovy-2.4'
testCompile 'net.bytebuddy:byte-buddy:1.8.0'
compile group: 'org.bouncycastle', name: 'bcpkix-jdk15on', version: '1.60'
}
您能否就如何模拟此类或以不同方式测试行为提出一些解决方案?
九州编程
相关分类