# QUnit 奇怪的行为？：测试因设置值不持久而失败

**URL:** <https://meta.discourse.org/t/strange-qunit-behaviour-test-failing-because-setting-value-doesnt-survive/274165>\
**Category:** Development\
**Created:** [2023 年8 月 7 日 10:05 UTC](https://meta.discourse.org/t/strange-qunit-behaviour-test-failing-because-setting-value-doesnt-survive/274165 "2023-08-07T10:05:22Z")\
**Posts on this page:** 1\
**Showing post:** 1

<div class="post-metadata">

作者： ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)\
发布日期： [2023 年8 月 7 日 10:05 UTC](https://meta.discourse.org/t/strange-qunit-behaviour-test-failing-because-setting-value-doesnt-survive/274165/1 "2023-08-07T10:05:22Z")

</div>

我遇到了一个关于 QUnit 的奇怪问题。

这个测试非常简单，应该很容易……但是……

一个插件设置与我设置的值不同。

> <https://github.com/merefield/discourse-locations/blob/b87a63b547f8d6ef5af44077aae21126ee29bb59/test/javascripts/acceptance/composer-default-location-test.js#L75>

当 JavaScript 作为 Composer 加载的结果运行时，之前在 acceptance 块中设置的设置值不再相同！

它应该是“user”，就像在测试代码中设置的那样，但如果使用 console.log 打印出来，这就是我看到的，也是测试失败的原因：

 ![image](https://global.discourse-cdn.com/meta/original/4X/9/7/b/97b34ee9640363b0d2996f968564e1b78b87c4fa.png)

我在这里做错什么了吗？为什么 `location_topic_default` 的值从 `user` 变成了 `none`？

请注意默认值：

> <https://github.com/merefield/discourse-locations/blob/b87a63b547f8d6ef5af44077aae21126ee29bb59/config/settings.yml#L149>

`needs.settings` 的作用域在这里应该是正确的吗？

这几乎就像 `needs.settings` 的运行顺序不正确，并且超出了 `acceptance` 的范围……

---

_[View the full topic](https://meta.discourse.org/t/strange-qunit-behaviour-test-failing-because-setting-value-doesnt-survive/274165)._
