我有一个邮件。并查看该邮件。在预览中,一切 看起来很好,链接正确呈现。
问题在于编写规范(RSpec)。当我尝试测试某些链接的存在时,测试失败,因为'&'测试中未正确显示链接中的&符号:
我测试的内容(以及邮件预览中显示的内容):
https://nolp.dhl.de/nextt-online-public/set_identcodes.do?lang=de&idc=1234567890
测试失败时我在测试输出中看到的内容:
https://nolp.dhl.de/nextt-online-public/set_identcodes.do?lang=de&idc=1234567890
那么,我怎么能理解呢? 为什么邮件在预览和测试中的解释方式不同? 我该怎么测试呢?
答案 0 :(得分:1)
测试输出转义为html。您也可以将您的期望转换为转义的html:
<table class="table table-bordered" style="border-color:black;">
<tr class="border-black">
<th class="text-center">
<h3> Bulletin de paie </h3>
</th>
<th class="text-center" align="center">
Adresse
<br></br>
<span t-field="o.adresse"/>
</th>
<th class="text-center" align="center">
Date de paie
<br></br>
<span t-field="o.datedepaie"/>
</th>
</tr>
<tr bordercolor="black">
<th class="text-center">
<strong>Matricule</strong>
<br></br>
<span t-field="o.matricule"/>
</th>
<th class="text-center">
<strong>Nom et Prénom</strong>
<br></br>
<span t-field="o.name"/>
</th>
<th class="text-center">
<strong>CNSS</strong>
<br></br>
<span t-field="o.cnss"/>
</th>
</tr>
<tr bordercolor="black">
<th class="text-center">
<strong>Date de naissance</strong>
<br></br>
<span t-field="o.datenaissance"/>
</th>
<th class="text-center">
<strong>Date d'embauche</strong>
<br></br>
<span t-field="o.dateembauche"/>
</th>
<th class="text-center">
<strong>Fonction</strong>
<br></br>
<span t-field="o.fonction"/>
</th>
</tr>
</table>
<table class="table table-bordered">
<thead>
<tr>
<th>Libellé</th>
<th>Base</th>
<th>Taux (%)</th>
<th>Gains</th>
<th>Retenues</th>
</tr>
</thead>
<tbody class="invoice_tbody">
<tr t-foreach="o.salaire_id" t-as="l">
<th><span t-field="l.libelle"/></th>
<th><span t-field="l.base"/></th>
<th><span t-field="l.taux"/></th>
<th><span t-field="l.gains"/></th>
<th><span t-field="l.retenues"/></th>
</tr>
<tr>
<th colspan="3" class="text-right">
<strong>Total</strong>
</th>
<th class="text-center">
<span t-field="o.total"/>
</th>
<th class="text-center">
<span t-field="o.totall"/>
</th>
</tr>
<tr>
<th colspan="5" class="text-right">
<strong>Net à payer:</strong>
<span t-field="o.net"/>
<br></br>
</th>
</tr>
</tbody>
</table>
</div>
</div>
<div class="footer">
答案 1 :(得分:0)
CGI.escapeHTML()
。我遇到了同样的问题,&
变成了&
。
您可以尝试使用CGI.escapeHTML()
来尝试转义HTML,并将与符号&
之类的字符转换为HTML代码&
。
it { is_expected.to include CGI.escapeHTML( expected_link ) }