最合适的回答,由SO网友:J.D. 整理而成
测试类型首先,请注意WordPress中的“单元测试”通常超出了单元测试,更像是功能/集成测试。这更多的是技术上的差异,但如果您理解这些不同事物之间的差异,您有时可能会对WordPress“单元”如何测试事物感到困惑。
当你问应该测试插件的哪些部分时,最好是测试所有插件。但至于您应该对哪些部分进行单元(或集成)测试,以及您应该对哪些部分使用验收测试,则是另一回事。
目前,对于我的插件,我使用两个不同的测试层:“PHPUnit的单元”测试,以及通过WP Browser. 单元测试测试内部逻辑,而验收测试检查用户使用插件的UI时,它是否实际工作。
测试单元测试的内容包括:
修改数据库中的值的代码,用于执行计算的代码,包含其他逻辑的代码,基本上是指任何传递值的函数,它会执行类似操作,和/或向您返回一些值。
要测试这类代码,您需要编写一个调用相关函数的测试,传递特定的值,然后断言返回的结果是您所期望的结果。或者,对于修改数据库的函数,您可以断言数据库包含调用函数后预期的值。
不要测试那些难以进行单元测试的代码,有些人可能会认为不应该进行单元测试,这些代码基本上只是用于将内容输出到浏览器中。这就是验收测试的目的。
此外,由于您提到了操作/过滤器,听起来您可能想知道是否应该测试一个函数是否连接到正确的操作,或者在WordPress调用该过滤器时是否实际应用了一个连接到过滤器的函数。这可能需要,也可能不需要,具体取决于所讨论的操作或筛选器。一般来说,我不测试这类东西,因为它通常更适合功能/验收测试(虽然验收测试只是间接测试)。
因此,基本上,单元测试逻辑和数据库方法,验收测试插件的实际UI。当然,为了使其正常工作,您需要将模板/输出代码与其他逻辑基本分开,这通常是一个好主意。
在您的情况下,您可能会发现验收测试对您的插件更为有用,而实际上并不需要单元测试,因为大多数内容都已经通过验收测试进行了测试。然而,两者兼备通常是理想的。