单元测试 – Spock数据驱动测试,用类来测试“instanceof”断言
发布时间:2020-12-14 16:21:03 所属栏目:大数据 来源:网络整理
导读:我有一个测试,我想测试一个特定的结果是一种类. 使用instanceof关键字断言.遗憾的是,我没有弄清楚如何在数据表中实际提供数据值expectedClass而没有实际使用instanceof调用它的问题.我认为关键字instanceof是这里的问题,因为它只接受类/接口名称.知道如何以
我有一个测试,我想测试一个特定的结果是一种类.
使用instanceof关键字断言.遗憾的是,我没有弄清楚如何在数据表中实际提供数据值expectedClass而没有实际使用instanceof调用它的问题.我认为关键字instanceof是这里的问题,因为它只接受类/接口名称.知道如何以其他方式测试我想测试的内容吗? class BattleResolverFactoryTest extends Specification { def uut = new BattleResolverFactory() @Unroll def "should return proper BattleResolver for given ConflictType"(Conflict.ConflictType conflictType,Class<? extends BattleResolver> expectedInstance) { when: def battleResolver = BattleResolverFactory.getResolver(conflictType) then: battleResolver instanceof expectedClass where: conflictType | expectedClass Conflict.ConflictType.INFANTRY_CONFLICT | TestInfantryResolver Conflict.ConflictType.ARMOR_CONFLICT | TestArmorResolver } } 解决方法
您可以像这样使用isCase:
class BattleResolverFactoryTest extends Specification { def uut = new BattleResolverFactory() @Unroll def "should return proper BattleResolver for given ConflictType"(Conflict.ConflictType conflictType,Class<? extends BattleResolver> expectedInstance) { when: def battleResolver = BattleResolverFactory.getResolver(conflictType) then: expectedClass.isCase(battleResolver) where: conflictType | expectedClass Conflict.ConflictType.INFANTRY_CONFLICT | TestInfantryResolver Conflict.ConflictType.ARMOR_CONFLICT | TestArmorResolver } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |