Fluent NHibernate 单元测试固定长度字符字段

发布于 2024-10-25 14:54:01 字数 485 浏览 2 评论 0原文

我的单元测试失败了,我知道原因,但我不确定应该如何处理它。我有以下单元测试:

new PersistenceSpecification<OrderLine>(session)
       .CheckProperty(x => x.Line, "1")
       .VerifyTheMappings();

它失败并出现以下错误:

测试方法 CanCorrectlyMapOrderLine 引发异常: System.ApplicationException:对于属性“Line”,期望“System.String”类型的“1”,但得到“System.String”类型的“1”

这样做的原因是因为 x.Line 指向固定长度字符字段数据库(准确地说是 nchar(10)),当它插入数据时,它会用空格填充它。我应该在单元测试中指定末尾带有 9 个空格的“1”,还是应该在读入它时以某种方式修剪它?还有其他方法可以处理这个问题吗?

I have a unit test that is failing and I know why but I'm not sure how I should be handling it. I have the following unit test:

new PersistenceSpecification<OrderLine>(session)
       .CheckProperty(x => x.Line, "1")
       .VerifyTheMappings();

It is failing with the following error:

Test method CanCorrectlyMapOrderLine threw exception:
System.ApplicationException: For property 'Line' expected '1' of type 'System.String' but got '1 ' of type 'System.String'

The reason it's doing this is because x.Line points to a fixed length character field in the database (nchar(10) to be exact) and when it inserts the data it pads it with spaces. Should I be specifying "1" with 9 spaces at the end in my unit tests or should I be trimming this somehow when I read it in? Is there another way to handle this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

情愿 2024-11-01 14:54:01

我最终只是做了以下事情:

new PersistenceSpecification<OrderLine>(session)
   .CheckProperty(x => x.Line, "1".PadRight(10, ' '))
   .VerifyTheMappings();

I ended up just doing the following with this:

new PersistenceSpecification<OrderLine>(session)
   .CheckProperty(x => x.Line, "1".PadRight(10, ' '))
   .VerifyTheMappings();
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文