gpt4 book ai didi

unit-testing - Dart pub构建:dart版本和已编译js版本之间的一致性

转载 作者:行者123 更新时间:2023-12-03 03:02:31 26 4
gpt4 key购买 nike

我有一个Polymer Dart应用程序,在开发过程中,它经历了以下两个阶段:

阶段1:工作正常(功能已完成并可以正常运行),但是没有自动测试。 (因此,为保证它的行为与假定的行为相同,我必须手动单击一些按钮,在某些输入字段中键入一些文本,才能看到它的行为正确。)

阶段2:我向应用程序添加了一些测试代码,使用unittest包来测试应用程序是否正常运行。该测试针对pub build之前在Dartium中运行的未编译dart代码。然后,我添加了一个转换器lib/transformer.dart,以便在pub build时,我的转换器将删除应用程序中所有与测试相关的代码,因此Polymer,dart2js和其他转换器将看到与第一阶段完全相同的代码,除了第一阶段,没有lib/transformer.dart

我的问题是:

答:(针对第1阶段)我是否应该担心dart版本和已编译js版本之间的一致性?即,我可以安全地假设,如果我的代码在dart版本中可以正常工作,那么在js版本中可以正常工作吗?

B.假设我的转换器完全按照它的预期做,也就是说,删除所有新添加的,与测试相关的代码(当然,除了转换器本身),还假设我的应用程序的js版本已经在阶段1,阶段2的js版本也可以正常工作吗?

注意:为什么我要以dart版本而不是js版本运行测试?因为我不知道如何在不将测试代码引入js版本的情况下进行操作,即我不希望js版本包含测试代码。

谢谢。

最佳答案

答:是的,您应该担心。
在客户端使用Dart代码主要是为了加快开发速度。最后,您必须确保生成的应用程序正确运行。
通常,它们的工作原理相同,但完全不能保证。有很多细微的差别,而不是那么细微的差别(时间,浏览器差别,...)

B:我猜不是因为A而适用。

将单元测试代码放在your_package/test中时,您无需担心生产中的测试代码。仅当您明确地(pub build test)而不是默认情况下(pub build)时,此代码才构建到JS。
您的your_package/libyour_package/webyour_package/bin中的生产代码应而不是包含任何测试代码。
如果这样做,则可能是您做错了。

您应该使用JavaScript构建测试,并使用目标版本中的每个浏览器测试应用。

关于unit-testing - Dart pub构建:dart版本和已编译js版本之间的一致性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28057620/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com