\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00Ball
鉴于上面提到的接口,我如何进行单元测试,使orderPizza()抛出任何PizzaOrderError.unexpectedAnswer而无需检查String?
似乎不存在匹配func orderPizza() throws
enum PizzaOrderError: Error {
case pizzaServiceNotAnsweringPhone
case unexpectedAnswer(String)
}
// Test that orderPizza throws any PizzaOrderError
expect { try orderPizza() }.to(throwError(errorType: PizzaOrderError.self))
// Test that orderPizza throws a .pizzaServiceNotAnsweringPhone error
expect { try orderPizza() }
.to(throwError(PizzaOrderError.pizzaServiceNotAnsweringPhone))
之类的事情,因为编译器始终希望为特定的String参数提供引用错误。
Nimble有一种提供闭包以执行“任意自定义匹配”的方法。我还没有找到任何有关此操作方式的示例,对此封闭的返回类型为throwError(PizzaOrderError.unexpectedAnswer)
有点困惑。我本来希望像Void
这样的东西。
在这种匹配的关闭中,我如何指示成功或失败?还有没有比这更短或更干净的方法来提取有关枚举大小写匹配的布尔信息?
Bool