我有一个“Account”对象,它有许多“User”对象。我正在尝试使用exto.Changset.cast\u assoc更新用户的关联帐户。它在iEx中运行良好,但在单元测试中,我得到:
(Ecto.ConstraintError) constraint error when attempting to update struct:
* users_account_id_fkey (foreign_key_constraint)
现在,我知道这与exto沙盒有关,但我不知道如何编写测试使其工作。我可以继续写这个测试,但我想知道如何让它为将来工作。
ExUnit.start()
{:ok, _} = Application.ensure_all_started(:wallaby)
{:ok, _} = Application.ensure_all_started(:ex_machina)
Faker.start()
Application.put_env(:wallaby, :base_url, BondiWeb.Endpoint.url())
我也有标准的通道盒,连接盒,数据盒,我没有改变这些。最后,my test.exs指向沙盒适配器:
pool: Ecto.Adapters.SQL.Sandbox
我尝试了几种不同的沙盒模式(:auto,:manual,:shared),但似乎不知道如何设置这个测试,以便插入两个记录并通过测试。
我怀疑这与我使用ExMachina管理设备有关,我“做错了”。但我也尝试直接创建用户,而不使用ExMachina,这似乎也不起作用。