Testing 如何在elixir中正确断言结构类型
我知道您可以像这样断言一个类型结构(尽管它更像是一个模块断言): 但有没有更优雅的方式来做到这一点?比如:Testing 如何在elixir中正确断言结构类型,testing,elixir,assert,Testing,Elixir,Assert,我知道您可以像这样断言一个类型结构(尽管它更像是一个模块断言): 但有没有更优雅的方式来做到这一点?比如: assert type(foo) == %Foo{} 您可以使用=和模式匹配: assert %Foo{} = foo @dogbert难道不是更地道些吗=将返回求值,例如%Foo{}而=将返回true如果失败,断言错误将提供有关不匹配的更好详细信息。@KevinJohnson=不正确,因为Foo的字段可能与%Foo{}的默认字段不匹配=在assert中是特殊情况,用于在失败时生成有用
assert type(foo) == %Foo{}
您可以使用
=
和模式匹配:
assert %Foo{} = foo
@dogbert难道不是更地道些吗
=
将返回求值,例如%Foo{}
而=
将返回true
如果失败,断言错误将提供有关不匹配的更好详细信息。@KevinJohnson=
不正确,因为Foo
的字段可能与%Foo{}的默认字段不匹配
<代码>=在assert
中是特殊情况,用于在失败时生成有用的错误消息。原因是=
被称为“匹配运算符”。它是一款可以在任何时候使用的模式匹配工具,无论是案例
、带有的还是函数头:)@dogbert,你是我的英雄
assert %Foo{} = foo